1. 程式人生 > >Linux程序管理 ps、jobs、kill、top等命令

Linux程序管理 ps、jobs、kill、top等命令

1.程序定義
程序就是cpu未完成的工作

2.ps命令
ps
    a   ##關於當前環境的所有程序
    x| -A   ##所有程序
    f   ##顯示程序從屬關係
    e   ##顯示程序呼叫環境工具的詳細資訊
    l   ##長列表顯示程序的詳細資訊
    u   ##顯示程序的使用者資訊
    -a  ##顯示shell前臺執行命令的程序,但不保函shell本身
   
ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat    ##指定顯示程序的某些資訊
%cpu    ##顯示程序cpu負載
%mem    ##顯示程序記憶體負載
user    ##程序使用者
group   ##程序組
comm    ##程序名稱
nice    ##程序優先順序
pid ##程序的id
stat    ##程序狀態

   stat中顯示的資訊
S   ##程序狀態
l   ##記憶體中有鎖定空間
N   ##優先順序低
<   ##優先順序高
+   ##前臺執行
s   ##頂級程序


ps ax -o %cpu,comm --sort <+|-%cpu > <+|-%mem>  ##按照程序資訊排序
+   ##正序
-   ##倒序
%cpu    ##cpu負載排序
%mem    ##記憶體負載


####3.程序優先順序####
1.程序的優先順序範圍
-20~19

2.優先順序檢視
ps ax -o pid,nice,comm

3.指定某個優先順序開啟程序
nice -n 優先順序數字  程序名稱
nice -n -5 vim &    ##開啟vim並且指定程式優先順序為-5

4.改變程序優先順序
reince -n 優先順序數字    程序pid
renice -n -5 1806   ##改變1806程序的優先順序為-5

[email protected] ~]# ps a -o pid,nice,comm
  PID NI COMMAND
  614  0 Xorg
 1128  0 agetty
 1625  0 bash
 1785  0 vim
 1806 -5 vim
 1824 -5 vim
 1835  0 ps

####4.環境中程序的前後臺呼叫####
jobs            ##檢視被打入環境後臺的程序
ctrl+z          ##把佔用終端的程序打入後臺
fg jobsnum      ##把後臺程序調回前臺
bg jobsnum      ##把後臺暫停的程序執行
comm &          ##讓命令直接在後臺執行


####5.程序訊號####
1.常用訊號等級
1       ##程序重新載入配置
2       ##刪除程序在記憶體中的資料
3       ##刪除滑鼠在記憶體中的資料
9       ##強行結束單個程序(不能被阻塞)
15      ##正常關閉程序  (可能會被阻塞)  
18      ##執行暫停的程序
19      ##暫停某個程序  (不能被阻塞)
20      ##把程序打入後臺    (可以被阻塞)
man 7 signal    ##檢視訊號詳細資訊

kill -訊號 程序pid
killall -訊號   程序名字
pkill   -u student -訊號   

SIGHUP     終止程序     終端線路結束通話
SIGINT     終止程序     中斷程序
SIGQUIT   建立CORE檔案終止程序,並且生成core檔案
SIGILL   建立CORE檔案       非法指令
SIGTRAP   建立CORE檔案       跟蹤自陷
SIGBUS   建立CORE檔案       匯流排錯誤
SIGSEGV   建立CORE檔案       段非法錯誤
SIGFPE   建立CORE檔案       浮點異常
SIGIOT   建立CORE檔案       執行I/O自陷
SIGKILL   終止程序     殺死程序
SIGPIPE   終止程序     向一個沒有讀程序的管道寫資料
SIGALARM   終止程序     計時器到時
SIGTERM   終止程序     軟體終止訊號
SIGSTOP   停止程序     非終端來的停止訊號
SIGTSTP   停止程序     終端來的停止訊號
SIGCONT   忽略訊號     繼續執行一個停止的程序
SIGURG   忽略訊號     I/O緊急訊號
SIGIO     忽略訊號     描述符上可以進行I/O
SIGCHLD   忽略訊號     當子程序停止或退出時通知父程序
SIGTTOU   停止程序     後臺程序寫終端
SIGTTIN   停止程序     後臺程序讀終端
SIGXGPU   終止程序     CPU時限超時
SIGXFSZ   終止程序     檔案長度過長
SIGWINCH   忽略訊號     視窗大小發生變化
SIGPROF   終止程序     統計分佈圖用計時器到時
SIGUSR1   終止程序     使用者定義訊號1
SIGUSR2   終止程序     使用者定義訊號2
SIGVTALRM 終止程序    虛擬計時器到時

1) SIGHUP
本訊號在使用者終端連線(正常或非正常)結束時發出, 通常是在終端的控
制程序結束時, 通知同一session內的各個作業, 這時它們與控制終端
不再關聯.
2) SIGINT
程式終止(interrupt)訊號, 在使用者鍵入INTR字元(通常是Ctrl-C)時發出
3)
SIGQUIT 和SIGINT類似, 但由QUIT字元(通常是Ctrl-)來控制. 程序在因收到
SIGQUIT退出時會產生core檔案, 在這個意義上類似於一個程式錯誤信
號.
4)
SIGILL 執行了非法指令. 通常是因為可執行檔案本身出現錯誤, 或者試圖執行
資料段. 堆疊溢位時也有可能產生這個訊號.
5)
SIGTRAP 由斷點指令或其它trap指令產生. 由debugger使用.
6)
SIGABRT 程式自己發現錯誤並呼叫abort時產生.
6)
SIGIOT 在PDP-11上由iot指令產生, 在其它機器上和SIGABRT一樣.
7)
SIGBUS 非法地址, 包括記憶體地址對齊(alignment)出錯. eg: 訪問一個四個字長
的整數, 但其地址不是4的倍數.
8)
SIGFPE 在發生致命的算術運算錯誤時發出. 不僅包括浮點運算錯誤, 還包括溢
出及除數為0等其它所有的算術的錯誤.
9)
SIGKILL 用來立即結束程式的執行. 本訊號不能被阻塞, 處理和忽略.
10)
SIGUSR1 留給使用者使用
11)
SIGSEGV 試圖訪問未分配給自己的記憶體, 或試圖往沒有寫許可權的記憶體地址寫資料.
12)
SIGUSR2 留給使用者使用
13)
SIGPIPE Broken pipe
14)
SIGALRM 時鐘定時訊號, 計算的是實際的時間或時鐘時間.alarm函式使用該
訊號.
15)
SIGTERM 程式結束(terminate)訊號, 與SIGKILL不同的是該訊號可以被阻塞和
處理. 通常用來要求程式自己正常退出. shell命令kill預設產生這
個訊號.
17)
SIGCHLD 子程序結束時, 父程序會收到這個訊號.
18)
SIGCONT 讓一個停止(stopped)的程序繼續執行. 本訊號不能被阻塞. 可以用
一個handler來讓程式在由stopped狀態變為繼續執行時完成特定的
工作. 例如, 重新顯示提示符
19)
SIGSTOP 停止(stopped)程序的執行. 注意它和terminate以及interrupt的區別:
該程序還未結束, 只是暫停執行. 本訊號不能被阻塞, 處理或忽略.
20)
SIGTSTP 停止程序的執行, 但該訊號可以被處理和忽略. 使用者鍵入SUSP字元時
(通常是Ctrl-Z)發出這個訊號
21)
SIGTTIN 當後臺作業要從使用者終端讀資料時, 該作業中的所有程序會收到SIGTTIN
訊號. 預設時這些程序會停止執行.
22)
SIGTTOU 類似於SIGTTIN, 但在寫終端(或修改終端模式)時收到.
23)
SIGURG 有"緊急"資料或out-of-band資料到達socket時產生.
24)
SIGXCPU 超過CPU時間資源限制. 這個限制可以由getrlimit/setrlimit來讀取/
改變
25)
SIGXFSZ 超過檔案大小資源限制.
26)
SIGVTALRM 虛擬時鐘訊號. 類似於SIGALRM, 但是計算的是該程序佔用的CPU時間.
27)
SIGPROF 類似於SIGALRM/SIGVTALRM, 但包括該程序用的CPU時間以及系統呼叫的
時間.
28)
SIGWINCH 視窗大小改變時發出.
29)
SIGIO 檔案描述符準備就緒, 可以開始進行輸入/輸出操作.
30)
SIGPWR Power failure

有 兩個訊號可以停止程序:SIGTERM和SIGKILL。 SIGTERM比較友好,程序能捕捉這個訊號,根據您的需要來關閉程式。在關閉程式之前,您可以結束開啟的記錄檔案和完成正在做的任務。在某些情況下,假如程序正在進行作業而且不能中斷,那麼程序可以忽略這個SIGTERM訊號。

對於SIGKILL訊號,程序是不能忽略的。這是一個 “我不管您在做什麼,立刻停止”的訊號。假如您傳送SIGKILL訊號給程序,Linux就將程序停止在那裡

####6.使用者登陸審記####

1
w       ##檢視使用系統的當前使用者有那些
w -f        ##-f檢視使用地點

2
last        ##檢視使用者登陸成功歷史
3.
lastb       ##檢視使用者登陸未成功歷史



####7.top命令####
top     ##監控系統負載工具
s   : 修改程序重新整理間隔時間
m   : 根據記憶體佔有率進行排序
c   : 根據 cpu 佔有率進行排序
u   : 後面輸入使用者名稱 , 用來檢視該使用者發起的所有程序
k   : 後面跟要作用的程序pid, 和發起的訊號 (eg:9,15,20) 用來
給某個程序發起一訊號
q   : 退出程序檢視介面
h   : 顯示 top 命令的幫助


####8.系統初始化程式####

1.systemd
系統初始化程式,系統開始的第一個程序,pid為1

2.systemctl 命令
systemctl list-units            ##列出當前系統服務的狀態
systemctl list-unit-files       ##列出服務的開機狀態
systemctl status sshd           ##檢視指定服務的狀態
systemctl stop sshd             ##關閉指定服務
systemctl start sshd            ##開啟指定服務
systemctl restart sshd          ##從新啟動服務
systemctl enable sshd           ##設定指定服務開機開啟
systemctl disable sshd          ##設定指定服務開機關閉
systemctl reload sshd           ##使指定服務從新載入配置
systemctl list-dependencies sshd    ##檢視指定服務的倚賴關係
systemctl mask  sshd            ##凍結指定服務
systemctl unmask sshd           ##啟用服務
systemctl set-default multi-user.target ##開機不開啟圖形
systemctl set-default graphical.target  ##開機啟動圖形
setterm                 ##文字介面設定color
vga=ask
3.服務狀態
systemctl   status      服務名稱

loaded              ##系統服務已經初始化完成,載入過配置

active(running)       ##正有一個或多個程式正在系統中執行,
                # vsftpd 就是這種模式

atcive(exited)        ##僅執行一次就正常結束的服務,

atcive(waiting)       ##正在執行當中,
                # 不過還再等待其他的事件才能繼續處理

inactive            ##服務關閉

enbaled             ##服務開機啟動

disabled            ##服務開機不自啟

static              ##服務開機啟動項不可被管理

failed              ##系統配置錯誤

相關推薦

Linux程序管理 psjobskilltop命令

1.程序定義 程序就是cpu未完成的工作 2.ps命令 ps     a   ##關於當前環境的所有程序     x| -A   ##所有程序     f   ##顯示程序從屬關係     e   ##顯示程序呼叫環境工具的詳細資訊     l   ##長列表顯示程序的詳細資

Linux 程序管理 pstoppstree命令

概述 作業系統中,所有可以執行的程式與命令都會產生程序。 如 ls 命令、touch 命令等,它們在執行完後就會結束,相應的程序也就會終結,所以我們很難捕捉到這些程序。但是還有一些程和命令,比如 httpd 程序,啟動之後就會一直駐留在系統當中,我們把這樣的程序稱作常駐記憶體程序。 某些程序會產生一些新的

Linux 程序管理 killkillallpkill命令

Linux常用訊號(程序間通訊)  系統中可以識別的訊號較多,我們可以使用命令"kill -l"或"man 7 signal"來查詢。命令如下: [[email protected] ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIG

Linux系統管理初步(二)iofreepsnetstat命令 編輯中

sha 系統 工具 可能 工作 ued uri per str 10.6 監控io性能10.7 free命令10.8 ps命令10.9 查看網絡狀態10.10 linux下抓包 一、iostat與iotop命令 iostat命令與iotop,命令能夠看出系統磁盤的工作情況,

Linux匯總一——Linux程序管理Linux終端,Linux命令格式命令類型及Linux命令幫助

for nco argument tomcat empty 環境變量 地址空間 偽終端 多個進程 本章blog主要匯總了Linux程序管理,linux應用程序的分類,Linux終端類型,Linux命令格式、命令類型及Linux命令幫助等相關知識點,並介紹了man命令,whi

Linux程序管理執行任務 和 軟體安裝(筆記)

一、Linux程序管理 系統:centos7 在linux系統中,分為前臺程序和後臺程序,前臺程序意思就是當一個命令執行的過程中,不允許其他的命令執行,我們之前所學習的常用命令基本上都是前臺程序。 比如

Linux 程序管理 vmstattoppstree命令

vmstat命令:監控系統資源 vmstat 是 Linux 中的一個綜合性能分析工具,可以用來監控 CPU 使用、程序狀態、記憶體使用、虛擬記憶體使用、磁碟輸入/輸出狀態等資訊。vmstat 命令格式如下: [[email protected]

Linux程序狀態(ps stat)之RSDTZX

我們先來了解一下各種程序狀態: TASK_RUNNING:程序當前正在執行,或者正在執行佇列中等待排程。TASK_INTERRUPTIBLE:程序處於睡眠狀態,正在等待某些事件發生。程序可以被訊號中斷。接收到訊號或被顯式的喚醒呼叫喚醒之後,程序將轉變為TASK_RU

Linux資料庫管理——day13——Redis的主從同步資料格式

主從同步     原理:從庫向主庫傳送同步請求(sync),接收到後啟動一個程式進行後臺儲存,然後把儲存的rdb檔案發給從庫,然後從庫讀取檔案實現同步,之後主庫每進行一次寫操作就會啟動一個程式,把修改命令發給從庫,實現實時同步     配置: &nbs

Linux程序間通訊之訊號量(semaphore)訊息佇列(Message Queue)和共享記憶體(Share Memory)

System V 程序通訊方式:訊號量(semaphore)、訊息佇列(Message Queue)和共享記憶體(Share Memory) 訊號量 訊號量(semaphore)實際是一個整數,它的值由多個程序進行測試(test)和設定(set)。就每個程序所關心的測試和

linux程序排程演算法:分時排程策略FIFO排程策略RR排程策略

linux核心的三種排程方法: SCHED_OTHER 分時排程策略, SCHED_FIFO實時排程策略,先到先服務 SCHED_RR實時排程策略,時間片輪轉 注意: 實時程序將得到優先呼叫,實時程序根據實時優先順序決

Linux程序間通訊(一)——管道訊號量

一、Linux程序間通訊方式 :有六種方式在兩個程式間傳遞資訊         1、訊號( Singal )         2、管道 ( Pipe ) 及有名管道         3、訊號量 (

Linux程序間通訊:訊號量 semget()semop()semctl()

這篇文章將講述別一種程序間通訊的機制——訊號量。注意請不要把它與之前所說的訊號混淆起來,訊號與訊號量是不同的兩種事物。有關訊號的更多內容,可以閱讀我的另一篇文章:Linux程序間通訊 -- 訊號。下面就進入訊號量的講解。 一、什麼是訊號量 為了防止出現

Linux學習匯總——Linux程序管理,終端類型及命令獲取幫助方式

linux程序管理 linux終端類型 linux命令幫助 linux常用命令 幫助命令 本章Blog相關Linux知識點計算機=硬件+軟件 。馮諾依曼理論,五大部件:CPU —— 運算器、控制器, 存儲器,輸入設備,輸出設備。Shell 環境配置通過環境變量進行配置的 ,環境變量保存對應

Linux學習匯總——Linux程序管理,終端類型及獲取命令幫助方式

linux程序管理 linux終端類型 linux獲取命令幫助 linux命令幫助 linux常用命令 本章Blog相關Linux知識點計算機=硬件+軟件 。馮諾依曼理論,五大部件:CPU —— 運算器、控制器, 存儲器,輸入設備,輸出設備。Shell 環境配置通過環境變量進行配置的 ,環

Linux程序管理

tran ack sta gre 格式 module httpd-2.2 cgi dep 1.通過mount命令查看設備掛載狀態中是否包含/dev/cdrom(sr0). [root@CentOS6-node1 ~]# mount |grep "cdrom" /dev/sr

Supervisor 安裝與配置 (Linux 程序管理工具)

Supervisor 安裝與配置 (Linux 程序管理工具) Supervisor 安裝與配置 Linux 程序管理工具 一安裝 Python 包管理工具easy_install 二安裝 Supervisor

linux程序管理之輕量級程序(四)

在Linux中,輕量級程序可以是程序,也可以是執行緒。我們所說的執行緒,在Linux中,其實是輕量級程序之間共享程式碼段,檔案描述符,訊號處理,全域性變數時; 如果不共享,就是我們所說的程序。 程序是資源管理的最小單位,執行緒是程式執行的最小單位。在作業系統設計上,從程序演化出執行緒,最主要的目的就是減小

linux程序管理程序建立(三)

在linux系統中,許多程序在誕生之初都與其父程序共同用一個儲存空間。但是子程序又可以建立自己的儲存空間,並與父程序“分道揚鑣”,成為與父程序一樣真正意義上的程序。  linux系統執行的第一個程序是在初始化階段“捏造出來的”。而此後的執行緒或程序都是由一個已存在的程序像細胞分裂一樣通過系統呼叫複

Linux程序管理之狀態(二)

二、程序的生命週期 程序是一個動態的實體,所以他是有生命的。從建立到消亡,是一個程序的整個生命週期。在這個週期中,程序可能會經歷各種不同的狀態。一般來說,所有程序都要經歷以下的3個狀態: 就緒態。指程序已經獲得所有所需的其他資源,正在申請處理處理器資源,準備開始執行。這種情況下,稱程序處於就緒態。