LINUX進程ps -ef和ps -aux的區別及格式詳解

Linux下顯示系統進程的命令ps,最經常使用的有ps -ef 和ps aux。這兩個到底有什麼區別呢?二者沒太大差異,討論這個問題,要追溯到Unix系統中的兩種風格,System V風格和BSD 風格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,二者輸出略有不一樣。如今的大部分Linux系統都是能夠同時使用這兩種方式的。網絡

ps -ef 是用標準的格式顯示進程的、其格式以下多線程

其中各列的內容意思以下
UID    //用戶ID、但輸出的是用戶名 
PID    //進程的ID 
PPID    //父進程ID 
C      //進程佔用CPU的百分比 
STIME  //進程啓動到如今的時間 
TTY    //該進程在那個終端上運行,若與終端無關,則顯示? 若爲pts/0等,則表示由網絡鏈接主機進程。 
CMD    //命令的名稱和參數spa

ps aux 是用BSD的格式來顯示、其格式以下線程

同ps -ef 不一樣的有列有
USER      //用戶名 
%CPU      //進程佔用的CPU百分比 
%MEM      //佔用內存的百分比 
VSZ      //該進程使用的虛擬內存量(KB) 
RSS      //該進程佔用的固定內存量(KB)(駐留中頁的數量) 
STAT      //進程的狀態 
START    //該進程被觸發啓動時間 
TIME      //該進程實際使用CPU運行的時間隊列

其中STAT狀態位常見的狀態字符有
D      //沒法中斷的休眠狀態(一般 IO 的進程); 
R      //正在運行可中在隊列中可過行的; 
S      //處於休眠狀態; 
T      //中止或被追蹤; 
W      //進入內存交換 (從內核2.6開始無效); 
X      //死掉的進程 (基本不多見); 
Z      //殭屍進程; 
<      //優先級高的進程 
N      //優先級較低的進程 
L      //有些頁被鎖進內存; 
s      //進程的領導者(在它之下有子進程); 
l      //多線程,克隆線程(使用 CLONE_THREAD, 相似 NPTL pthreads); 
+      //位於後臺的進程組;進程

相關文章
相關標籤/搜索