Linux:ps命令以及进程状态详解
Linux 查看進程PS命令詳細介紹
?
1.ps簡介
?? ps命令就是最根本相應情況下也是相當強大地進程查看命令.運用該命令可以確定有哪些進程正在運行和運行地狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多地資源等等.總之大部分信息均為可以通過執行該命令得到地.
2. ps命令及其參數
Linux 查看進程ps命令最經常使用地還是用于監控后臺進程地工作情況,因為后臺進程是不和屏幕鍵盤這些標準輸入/輸出設備進行通信地,所以如果需要檢測其情況,便可以運用ps命令了.該命令語法格式如下:
ps[選項]
-e顯示所有進程,環境變量
-f全格式
-h不顯示標題
-l長格式
-w寬輸出
a顯示終端上地所有進程,包括其他用戶地進程
r只顯示正在運行地進程
x顯示沒有控制終端地進程
O[+|-]k1[,[+|-]k2[,…]]根據SHORTKEYS、k1、k2中快捷鍵指定地多級排序順序顯示進程列表.
?
注1:對于ps的不同格式都存在著默認地順序指定.這些默認順序可以被用戶地指定所覆蓋.在這里面“+”字符是可選地,“-”字符是倒轉指定鍵地方向.pids只列出進程標識符,之間運用逗號分隔.該進程列表必須在命令行參數地最后一個選項后面緊接著給出,中間不能插入空格.比如:ps-f1,4,5.:
注2:以下介紹長命令行選項,這些選項都運用“--”開頭:
--sortX[+|-]key[,[+|-]key[,…]]從SORTKEYS段中選一個多字母鍵.“+”字符是可選地,因為默認地方向就是按數字升序或者詞典順序.比如:ps-jax-sort=uid,-ppid,+pid.
--help顯示幫助信息.
--version顯示該命令地版本信息.
注3:在前面地選項說明中提到了排序鍵,接下來對排序鍵作進一步說明.需要注意地是排序中運用地值是ps運用地內部值,并非僅用于某些輸出格式地偽值.排序鍵列表見表4-3.
表4-3 排序鍵列表
短格式??????? ??? 長格式????????? ????????????? 說 明
C????????????????????? cmd?????????????????????????? 可執行的簡單名稱
C????????????????????? cmdline????????????????????? 完整命令行
F?????????????????????? flags?????????????????????????? 長模式標志
g??????????????? ?????? pgrp?????????????????????????? 進程的組ID
G????????????????????? tpgid????????????????????????? 控制tty進程組ID
j??????????????????????? cutime??????????????????????? 累計用戶時間
J ??????????????????????cstime ????????????????????? 累計系統時間
k???? ????????????????? utime????????????? 用戶時間
K????????????????????? stime????????????? 系統時間
m??????????? ? ? ? ? ? min_flt???????????? 次要頁錯誤的數量
M????????????????????? maj_flt???????????? 主要頁錯誤的數量
n?????????????????????? cmin_flt??????????? 累計次要頁錯誤
N?????????????????????? cmaj_flt??????????? 累計主要頁錯誤
o?????????????????????? session?????? ??????對話ID
p?????????????????????? pid??????????????? 進程ID
P???????????? ? ? ? ?? ppid??????????????? 父進程ID
r????????????? ? ? ? ?? rss??????????????? 駐留大小
R????????????????????? resident??????????? 駐留頁
s????????????????????? size?????????????? 內存大小(千字節)
S???????????????????? share?????????????? 共享頁的數量
t????????????? ? ? ? ? ? tty???????????????????????????? tty次要設備號
T????????????????????? start_time?????????? 進程啟動的時間
U????????????????????? uid?????????????? UID
u???????????? ? ? ? ? ? user??????????????? 用戶名
v????????????????????? vsize????????????? 總的虛擬內存數量(字節)
?? y????????????????????? priority??????????? 內核調度優先級
?
3.ps命令對應的進程狀態解說
大寫字母:
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct (”zombie”) process, terminated but not reaped by its parent.
小寫字母及其它符號:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process group
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用后釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行運行)
ps工具標識進程的5種狀態碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
注: 其它狀態還包括W(無駐留頁), <(高優先級進程), N(低優先級進程), L(內存鎖頁).
使用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
?
轉載于:https://blog.51cto.com/5319188/1086830
總結
以上是生活随笔為你收集整理的Linux:ps命令以及进程状态详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到自己喜欢同性是什么意思
- 下一篇: linux-shell面试题 之二