Linux操作系統下使用不同的命令工具可以從不同的角度查看進程狀態,常用的進程查看命令如下:
1 ps命令
ps命令的作用是查看靜態的進程統計信息(Processes Statistic),常見的選項如下:
1)a:顯示當前終端下的所有進程信息,包括其他用戶的進程。
2)u:使用以用戶為主的格式輸出進程信息。
3)x:顯示當前用戶在所有終端下的進程。
4)-e:顯示系統內的所有進程信息。
5)-l:使用長(long)格式顯示進程信息。
6)-f:使用完整的(full)格式顯示進程信息。
需要注意的是,有一部分選項是不帶“-”前綴的(添加“-”前綴后含義可能會有出入)。習慣上將上述選項組合在一起使用,如,“ps aux”或“ps -elf”。
示例1:ps aux 將以簡單列表的形式顯示出進程信息。如下圖

上圖中的輸出信息中,第1行為列表標題,其中各字段的含義描述如下:
1)USER:啟動該進程的用戶賬號名稱
2)PID:該進程的ID號,在當前系統中是唯一的
3)TTY:該進程在哪個終端上運行。“?”表未知或不需要終端
4)STAT:顯示了進程當前的狀態,如S(休眠)、R(運行)、Z(僵死)、<(高優先級)、N(低優先級)、s(父進程)、+(前台進程)。對處於僵死狀態的進程應予以手動終止。
5)START:啟動該進程的時間
6)TIME:該進程占用CPU時間
7)COMMAND:啟動該進程的命令的名稱
8)%CPU:CPU占用的百分比
9)%MEM:內存占用的百分比
10)VSZ:占用虛擬內存(swap空間)的大小
11)RSS:占用常駐內存(物理內存)的大小
示例2:ps -elf 以長格式顯示系統中的進程信息,包含更豐富的內容。大概意思都一樣,PPID為父進程的PID。
示例3:ps 直接執行不帶任何選項,只顯示當前用戶會話中打開的進程。

示例4:結合管道操作和grep命令進行過濾,用於查詢某一個進程的信息。

2 top命令
top命令可以查看進程動態信息,以全屏交互式的界面顯示進程排名,及時跟蹤包括CPU、內存等系統資源占用情況,默認情況下每三秒刷新一次,其作用基本類似於Windows系統中的任務管理器。
示例:

上圖中輸出信息開頭部分相關信息的含義如下:
1)Tasks(系統任務)信息:total,總進程數;running,正在運行的進程數;sleeping,休眠的進程數;stopped,中止的進程數;zombie,僵死無響應的進程數。
2)CPU 信息:us,用戶占用;sy,內核占用;ni,優先級調度占用;id,空閑CPU;wa,I/O等待占用;hi,硬件中斷占用;si,軟件中斷占用;st,虛擬化占用。了解空閑的CPU百分比,主要看%id部分。
3)Mem(內存)信息:total,總內存空間;used,已用內存;free,空閑內存;buffers,緩存區域。
4)Swap(交換空間)信息:total,總交換空間;used,已用交換空間;free,空閑交換空間;cached,緩存空間。
在top命令的全屏操作界面中,按P鍵根據CPU占用情況對進程列表進行排序,或按M鍵根據內存占用情況排序,按N鍵根據啟動時間進行排序,按h鍵可以獲得top程序的在線幫助信息,按q鍵可以正常地退出top程序。
若通過top排名工具發現某個進程CPU占用率非常高,需要終止該進程的運行時,可以在top操作界面按k鍵,然后在列表上方將會出現“PID to kill”的提示信息,根據提示輸入指定進程的PID號並按enter鍵確認即可終止對應的進程。
3 pgrep命令
pgrep命令可以根據特定條件查詢進程PID信息
1)-l:顯示進程名;
2)-U:指定用戶;
3)-t:指定終端。
示例:

4 pstree命令
pstree命令可以查看進程樹,以樹形結構列出進程信息:
1)-a:顯示完整信息;
2)-u:列出對應用戶名;
3)-p:列出對應PID。
示例1:

示例2:指定用戶