Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,若是想要動態的顯示進程信息,就可使用top命令。html
要對進程進行監測和控制,首先必需要了解當前進程的狀況,也就是須要查看當前進程,而 ps 命令就是最基本同時也是很是強大的進程查看命令。使用該命令能夠肯定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是能夠經過執行該命令獲得的。linux
ps 爲咱們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;若是想對進程時間監控,應該用 top 工具。less
kill 命令用於殺死進程。工具
linux上進程有5種狀態: spa
1. 運行(正在運行或在運行隊列中等待) htm
2. 中斷(休眠中, 受阻, 在等待某個條件的造成或接受到信號) blog
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
ps命令支持三種使用的語法格式
UNIX 風格,選項能夠組合在一塊兒,而且選項前必須有「-」連字符
BSD 風格,選項能夠組合在一塊兒,可是選項前不能有「-」連字符
GNU 風格的長選項,選項前有兩個「-」連字符
咱們可以混用這幾種風格,可是可能會發生衝突。本文使用 UNIX 風格的ps命令。
常見參數:
-a 顯示同一終端下的全部程序、
-aux 顯示全部包含其餘使用者的進程
常見選項組合:
這是一個基本的 ps 使用。在控制檯中執行這個命令並查看結果。
不加選項執行ps命令
結果默認會顯示4列信息。
這些信息在顯示時未排序。
使用 -a 參數。-a 表明 all。同時加上x參數會顯示沒有控制終端的進程。
這個命令的結果或許會很長。爲了便於查看,能夠結合less命令和管道來使用。
ps all 信息
在須要查看特定用戶進程的狀況下,咱們可使用 -u 參數。好比咱們要查看用戶'pungki'的進程,能夠經過下面的命令:
經過用戶過濾
也許你但願把結果按照 CPU 或者內存用量來篩選,這樣你就找到哪一個進程佔用了你的資源。要作到這一點,咱們可使用 aux 參數,來顯示全面的信息:
顯示全面信息
當結果很長時,咱們可使用管道和less命令來篩選。
默認的結果集是未排好序的。能夠經過 --sort命令來排序。
根據 CPU 使用來升序排序
根據cpu使用排序
根據 內存使用 來升序排序
根據內存使用來排序
咱們也能夠將它們合併到一個命令,並經過管道顯示前10個結果:
$ ps -aux --sort -pcpu,+pmem | head -n 10
參考資料:
1. https://linux.cn/article-4743-1.html
2. http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html