Linux_ps aux指令與grep指令配合管理進程

Linux進程狀態

  1. 運行(正在運行或在運行隊列中等待)
  2. 中斷(休眠中,受阻,在等待某個條件的形成或等待接受到信號)
  3. 不可中斷(收到信號不喚醒和不可運行,進程必須等待直到有中斷髮生)
  4. 僵死(進程已終止,但進程描述符存在,直到父進程調用wait4()系統調用後釋放)
  5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)

ps相關指令

ps命令(Process Status)是最基本同時也是非常強大的進程查看命令。

  • ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
  • ps -A 顯示所有程序。
  • ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
  • ps -e 此參數的效果和指定"A"參數相同。
  • ps e 列出程序時,顯示每個程序所使用的環境變量。
  • ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關係。
  • ps -H 顯示樹狀結構,表示程序間的相互關係。
  • ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
  • ps s 採用程序信號的格式顯示程序狀況。
  • ps S 列出程序時,包括已中斷的子程序資料。
  • ps -t <終端機編號>  指定終端機編號,並列出屬於該終端機的程序的狀況。
  • ps u   以用戶爲主的格式來顯示程序狀況。
  • ps x   顯示所有程序,不以終端機來區分。

ps aux | more 指令

這個指令可以顯示進程詳細的狀態。

參數解釋:

  • USER:進程的所有者。
  • PID:進程的ID。
  • PPID:父進程。
  • %CPU:進程佔用的CPU百分比。
  • %MEM:進程佔用的內存百分比。
  • NI:進程的NICE值,數值越大,表示佔用的CPU時間越少。
  • VSZ:該進程使用的虛擬內存量(KB)。
  • RSS:該進程佔用的固定內存量(KB)。
  • TTY:該進程在哪個終端上運行,若與終端無關,則顯示?。若爲pts/0等,則表示由網絡連接主機進程。
  • WCHAN:查看當前進程是否在運行,若爲-表示正在運行。
  • START:該進程被觸發啓動時間。
  • TIME:該進程實際使用CPU運行的時間。
  • COMMAND:命令的名稱和參數。
  • STAT狀態位常見的狀態字符:
    D 無法中斷的休眠狀態(通常 IO 的進程);
    R 正在運行可中在隊列中可過行的;
    S 處於休眠狀態;
    T 停止或被追蹤;
    W 進入內存交換 (從內核2.6開始無效);
    X 死掉的進程 (基本很少見);
    Z 殭屍進程;
    < 優先級高的進程
    N 優先級較低的進程
    L 有些頁被鎖進內存;
    s 進程的領導者(在它之下有子進程);
    l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads);+ 位於後臺的進程組;

ps aux | grep xxx命令

如果直接用ps命令,會顯示所有進程的狀態,通常結合grep命令查看某進程的狀態。

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。

例如我想要查看Python 的所有進程,可以在終端輸入如下命令:

ps aux | grep python

便可以把Python相關的進程全部都打印到終端供我們查看。相關參數和之前的ps aux | more一致。

進程結束命令

我們可以使用kill命令來結束進程。

如下面的指令所示:

kill   PID  //殺掉進程
kill  -9 PID //強制殺死進程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章