系統維護的時候難免會遇到程序的狀態的查詢和管理,到底什麼是r,有的是s,有的還是s+呢?一直有些混沌的問題,今天細細的來總結一下:
ps是用來報告系統中程式執行狀況的命令這個是無可厚非的,linux程序的狀態:
d 不可中斷睡眠 (通常是在io操作) 收到訊號不喚醒和不可執行, 程序必須等待直到有中斷發生
r 正在執行或可執行(在執行佇列排隊中)
s 可中斷睡眠 (休眠中, 受阻, 在等待某個條件的形成或接受到訊號)
t 已停止的 程序收到sigstop, sigstp, sigtin, sigtou訊號後停止執行
w 正在換頁(2.6.核心之前有效)
x 死程序 (未開啟)
z 殭屍程序 程序已終止, 但程序描述符存在, 直到父程序呼叫wait4()系統呼叫後釋放bsd風格的
< 高優先順序(not nice to other users)
n 低優先順序(nice to other users)
l 頁面鎖定在記憶體(實時和定製的io)
s 乙個資訊頭
l 多執行緒(使用 clone_thread,像nptl的pthreads的那樣)
+ 在前台程序組
例如:[test@pan ~]$ ps -aux
user pid %cpu %mem vsz rss tty stat start time command
root 1 0.0 0.0 1672 516 ? s apr21 0:00 init [5]
root 2 0.0 0.0 0 0 ? s apr21 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? sn apr21 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? s apr21 0:00 [migration/1]
root 5 0.0 0.0 0 0 ? sn apr21 0:00 [ksoftirqd/1]
root 6 0.0 0.0 0 0 ? s apr21 0:00 [migration/2]
其中這個引數來列出所有的資訊以提供自己檢查程式的問題!在上面的程式列出當中,說明如下:
user:說明該程式是屬於哪乙個人的;
pid:該程式的代號;
%cpu:代表該程式使用了多少 cpu 資源;
%mem:代表該程式使用了多少的 ram ;
vsz, rss:占去的 ram 的大小( bytes );
tty:是否為登入者執行的程式?若為 tty1-tty6 則為本機登入者,若為 pts/?? 則為遠端登入者執行的程式
stat:該程式的狀態
start:該程式開始的日期;
time:該程式執行的時間?
command:該程式的內容啦!
ps命令一般和grep搭配使用,列出某個特定程序的狀態
ps -aux |grep mega或者ps -ef |grep mega (檢查程序名包含mega的程序執行狀況)
man ps的解釋:
linux ps(process status) 命令詳解
功能說明:報告程式狀況。
語 法:ps [-aacdefhjlmnvwy][acefghlnrsstuvxx][-c 《指令名稱》][-g 《群組名稱》][-g 《群組識別碼》][-p 《程式識別碼》][p 《程式識別碼》][-s 《階段作業》][-t 《終端機編號》][t 《終端機編號》][-u 《使用者識別碼》][-u 《使用者識別碼》][u 《使用者名稱》][-《程式識別碼》][--cols 《每列字元數》][-- columns 《每列字元數》][--cumulative][-- elect][--forest][--headers][--help] [--info][--lines 《顯示列數》][--no-headers][--group 《群組名稱》][-group 《群組識別碼》][--pid 《程式識別碼》][--rows 《顯示列數》][--sid 《階段作業》][--tty 《終端機編號》][--user 《使用者名稱》][--user 《使用者識別碼》][--version][--width 《每列字元數》]
補充說明:ps是用來報告程式執行狀況的指令,您可以搭配kill指令隨時中斷,刪除不必要的程式。
參 數:
-a 顯示所有終端機下執行的程式,除了階段作業領導者之外。
a 顯示現行終端機下的所有程式,包括其他使用者的程式。
-a 顯示所有程式。
-c 顯示cls和pri欄位。
c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,引數或常駐服務的標示。
-c 《指令名稱》 指定執行指令的名稱,並列出該指令的程式的狀況。
-d 顯示所有程式,但不包括階段作業領導者的程式。
-e 此引數的效果和指定"a"引數相同。
e 列出程式時,顯示每個程式所使用的環境變數。
-f 顯示uid,ppip,c與stime欄位。
f 用ascii字元顯示樹狀結構,表達程式間的相互關係。
-g《群組名稱》 此引數的效果和指定"-g"引數相同,當亦能使用階段作業領導者的名稱來指定。
g 顯示現行終端機下的所有程式,包括群組領導者的程式。
-g《群組識別碼》 列出屬於該群組的程式的狀況,也可使用群組名稱來指定。
h 不顯示標題列。
-h 顯示樹狀結構,表示程式間的相互關係。
-j或j 採用工作控制的格式顯示程式狀況。
-l或l 採用詳細的格式來顯示程式狀況。
l 列出欄位的相關資訊。
-m或m 顯示所有的執行緒。
n 以數字來表示user和wchan欄位。
-n 顯示所有的程式,除了執行ps指令終端機下的程式之外。
-p《程式識別碼》 指定程式識別碼,並列出該程式的狀況。
p《程式識別碼》 此引數的效果和指定"-p"引數相同,只在列**式方面稍有差異。
r 只列出現行終端機正在執行中的程式。
-s《階段作業》 指定階段作業的程式識別碼,並列出隸屬該階段作業的程式的狀況。
s 採用程式訊號的格式顯示程式狀況。
s 列出程式時,包括已中斷的子程式資料。
-t《終端機編號》 指定終端機編號,並列出屬於該終端機的程式的狀況。
t《終端機編號》 此引數的效果和指定"-t"引數相同,只在列**式方面稍有差異。
-t 顯示現行終端機下的所有程式。
-u< 使用者識別碼》 此引數的效果和指定"-u"引數相同。
u 以使用者為主的格式來顯示程式狀況。
-u《使用者識別碼》 列出屬於該使用者的程式的狀況,也可使用使用者名稱來指定。
u《使用者名稱》 列出屬於該使用者的程式的狀況。
v 採用虛擬記憶體的格式顯示程式狀況。
-v或v 顯示版本資訊。
-w或w 採用寬闊的格式來顯示程式狀況。
x 顯示所有程式,不以終端機來區分。
x 採用舊式的linux i386登陸格式顯示程式狀況。
-y 配合引數"-l"使用時,不顯示f(flag)字段,並以rss欄位取代addr欄位 。
-《程式識別碼》 此引數的效果和指定"p"引數相同。
--cols《每列字元數》 設定每列的最大字元數。
--columns《每列字元數》 此引數的效果和指定"--cols"引數相同。
--cumulative 此引數的效果和指定"s"引數相同。
--deselect 此引數的效果和指定"-n"引數相同。
--forest 此引數的效果和指定"f"引數相同。
--headers 重複顯示標題列。
--info 顯示排錯資訊。
--lines《顯示列數》 設定顯示畫面的列數。
--no-headers 此引數的效果和指定"h"引數相同,只在列**式方面稍有差異。
--group《群組名稱》 此引數的效果和指定"-g"引數相同。
--group《群組識別碼》 此引數的效果和指定"-g"引數相同。
--pid《程式識別碼》 此引數的效果和指定"-p"引數相同。
--rows《顯示列數》 此引數的效果和指定"--lines"引數相同。
--sid《階段作業》 此引數的效果和指定"-s"引數相同。
--tty《終端機編號》 此引數的效果和指定"-t"引數相同。
--user《使用者名稱》 此引數的效果和指定"-u"引數相同。
--user《使用者識別碼》 此引數的效果和指定"-u"引數相同。
--version 此引數的效果和指定"-v"引數相同。
--widty《每列字元數》 此引數的效果和指定"-cols"引數相同。
linux程序狀態查詢 ps
linux程序狀態查詢 ps 2011年03月01日 系統維護的時候難免會遇到程序的狀態的查詢和管理,到底什麼是r,有的是s,有的還是s 呢?一直有些混沌的問題,今天細細的來總結一下 ps是用來報告系統中程式執行狀況的命令這個是無可厚非的,linux程序的狀態 d 不可中斷睡眠 通常是在io操作 收...
linux程序狀態查詢
linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...
linux程序狀態查詢
linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...