linux中ps(process status) 命令是LINUX下最常用的也是非常強大的進程查看命令,運用該命令可以確定有哪些進程正在運行和運行地狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多地資源等等。 ps命令最常用的是用于監控后臺進程的工作情況。
Linux 查看進程ps命令及其參數:
使用方式:ps [options] [--help]
語 法:
ps?[-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C?<指令名稱>][-g?<群組名稱>][-G?<群組識別碼>][-p?<程序識別碼>][p?<程序識別碼>][-s?<階段作業>][-t?<終端機編號>][t?<終端機編號>][-u?<用戶識別碼>][-U?<用戶識別碼>][U?<用戶名稱>][-<程序識別碼>][--cols?<每列字符數>][--columns?<每列字符數>][--cumulative][--deselect][--forest][--headers][--help][--info][--lines?<顯示列數>][--no-headers][--group?<群組名稱>][-Group?<群組識別碼>][--pid?<程序識別碼>][--rows?<顯示列數>][--sid?<階段作業>][--tty?<終端機編號>][--user?<用戶名稱>][--User?<用戶識別碼>][--version][--width?<每列字符數>]
參 數:
-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 重復顯示標題列。
--help 在線幫助。
--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"參數相同。
常用的參數:
ps命令常用用法(方便查看系統進程)
1)ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
2)ps -A 顯示所有進程。
3)ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。
7)ps -H 顯示樹狀結構,表示程序間的相互關系。
8)ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
9)ps s 采用程序信號的格式顯示程序狀況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t<終端機編號> 指定終端機編號,并列出屬于該終端機的程序的狀況。
12)ps u 以用戶為主的格式來顯示程序狀況。
13)ps x 顯示所有程序,不以終端機來區分。
常用組合:
-
ps axjf
-
ps aux
-
ps?-ef
-
ps?-lA
-
[yanue@server?~]$ ps aux
-
USER PID?%CPU?%MEM VSZ RSS TTY STAT START TIME COMMAND
-
root?1?0.0?0.0?10368?176?Ss?May25?0:24?init?[3]
-
root?2?0.0?0.0?0?0?S?May25?0:00?[kthreadd/2336]
-
root?3?0.0?0.0?0?0?S?May25?0:00?[khelper/2336]
-
root?135?0.0?0.0?12636?320?S<s?May25?0:00?/sbin/udevd?-d
-
root?569?0.0?0.0?5928?464?Ss?May25?1:07?syslogd?-m?0
-
root?580?0.0?0.1?62684?640?Ss?May25?0:48?/usr/sbin/sshd
Head 標頭:
USER:該 process 屬于那個使用者賬號的?
PID :該 process 的號碼。
%CPU:該 process 使用掉的 CPU 資源百分比;
%MEM:該 process 所占用的物理內存百分比;
VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
RSS :該 process 占用的固定的內存量 (Kbytes)
TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。
STAT:該程序目前的狀態,主要的狀態有: ? ? ?R :該程序目前正在運作,或者是可被運作;
? ? ? S :該程序目前正在睡眠當中 (可說是 idle 狀態啦!),但可被某些訊號 (signal) 喚醒。
? ? ? T :該程序目前正在偵測或者是停止了;
? ? ? Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態
START:該 process 被觸發啟動的時間;
TIME :該 process 實際使用 CPU 運作的時間。
COMMAND:該程序的實際指令為何?
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用后釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行運行)
使用ps格式輸出來查看進程狀態:
-
ps?-eo user,stat..,cmd
-
user?用戶名
-
uid?用戶號
-
pid?進程號
-
ppid?父進程號
-
size?內存大小,?Kbytes字節.
-
vsize?總虛擬內存大小,?bytes字節(包含code+data+stack)
-
share?總共享頁數
-
nice?進程優先級(缺省為0,?最大為-20)
-
priority(pri)?內核調度優先級
-
pmem?進程分享的物理內存數的百分比
-
trs?程序執行代碼駐留大小
-
rss?進程使用的總物理內存數,?Kbytes字節
-
time?進程執行起到現在總的CPU暫用時間
-
stat?進程狀態
-
cmd(args)?執行命令的簡單格式
例子:
查看當前系統進程的uid,pid,stat,pri, 以uid號排序.
ps?-eo?pid,stat,pri,uid?–sort?uid
查看當前系統進程的user,pid,stat,rss,args, 以rss排序.
ps?-eo?user,pid,stat,rss,args?–sort?rss
本文轉自:http://yanue.net/post-87.html
本文轉自奔跑在路上博客51CTO博客,原文鏈接http://blog.51cto.com/qiangsh/1626891如需轉載請自行聯系原作者
qianghong000