【理解】
ps命令用于報告當前系統的進程狀態??梢源钆鋕ill指令隨時中斷、刪除不必要的程序。ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。
默認不加選項時只顯示當前終端的進程
語法: | ps+(選項) |
支持三種選項風格:
UNIX? 選項風格 | 如-A? -e |
BSD??? 選項風格 | 如 a |
GNU? 選項風格 | 如–help |
UNIX:? 起源于unix
BSD:? ? 起源于Unix分支伯克利大學—–BSD UNIX
GNU:? ?起源于開源軟件
【常用經典選項組合】
watch -n 1 ‘ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%mem | head’
使用watch實用程序執行重復的輸出以實現對就程進行實時的監視,如下面的命令顯示每秒鐘的監視:
ps aux | 以用戶為主的格式顯示所有進程的不區分終端(更詳細) |
ps -ef | 等價于aux不如aux詳細 |
ps -axo | 指定顯示某些選項的詳細進程信息,默認按照pid排序。 例:ps -axo +pid,cmd,%cpu |
ps -x | 查詢你擁有的所有進程 |
ps -fU apache
ps -fu 48 | 顯示指定用戶名(RUID)或用戶ID的進程 |
ps -fu wang
ps -fu 1000 | 顯示指定用戶名(EUID)或用戶ID的進程: |
ps -U root -u root | 查看以root用戶權限(實際和有效ID)運行的每個進程 |
ps -fG nginx | 列出某個組擁有的所有進程(實際組ID:RGID或名稱) |
ps -fg mysql
ps -fG 27 | 列出有效組名稱(或會話)所擁有的所有進程: |
ps -fp 1234 | 通過進程ID來顯示所屬的進程: |
ps -f –ppid 1234 | 以父進程ID來顯示其下所有的進程,如顯示父進程為1154的所有進程: |
ps -fp 1204,1239,1263 | 顯示指定PID的多個進程: |
ps -ft pst/0 | 要按tty顯示所屬進程: |
ps -eo comm,etime,user | grep nginx | 檢查一個進程的執行時間 |
選項:
-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指令終端機下的程序之外。
-o?? :指定某些選項顯示
-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”選項相同。
–sort<+排序選項> :按照某一選項進行排序。例如 –sort %mem?? 按照內存進行排序(支持centos7以上)
–tty<終端機編號>:此選項的效果和指定”-t”選項相同。
–user<用戶名稱>:此選項的效果和指定”-U”選項相同。
–User<用戶識別碼>:此選項的效果和指定”-U”選項相同。
–version:此選項的效果和指定”-V”選項相同。
–widty<每列字符數>:此選項的效果和指定”-cols”選項相同。
PS的輸出屬性:
vVSZ: Virtual memory SiZe,虛擬內存集,線性內存
vRSS: ReSident Size, 常駐內存集
vSTAT:進程狀態
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前臺進程
l: 多線程進程
L:內存分頁并帶鎖
N:低優先級進程
<: 高優先級進程
s: session leader,會話(子進程)發起者
vni: nice值
vpri: priority 優先級
vpsr: processor CPU編號
vrtprio: 實時優先級
v示例:
ps axo pid,cmd,psr,ni,pri,rtprio
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90349