ps 命令
ps 命令就是最根本相應情況下也是相當強大地進程查看命令.運用該命令可以確定有哪些進程正在運行和運行地狀態、 進程 是否結束、進程有沒有僵死、哪些進程占用了過多地資源等等.總之大部分信息均為可以通過執行該命令得到地.
ps 命令及其參數
ps 命令最經常使用地還是用於監控後台進程地工作情況,因為後台進程是不和屏幕鍵盤這些標准輸入/輸出設
備進行通信地,所以如果需要檢測其情況,便可以運用 ps 命令了.
該命令語法格式如下:
ps [選項]
-e 顯示所有進程,環境變量
-f 全格式
-h 不顯示標題
-l 長格式
-w 寬輸出
a
顯示終端上地所有進程,包括其他用戶地進程
r
只顯示正在運行地進程
x
顯示沒有控制終端地進程
O[+|-] k1 [,[+|-] k2 [,…]] 根據 SHORT KEYS、k1、k2 中快捷鍵指定地多級排序順序顯示進程列表.
對於 ps 地不同格式都存在著默認地順序指定.這些默認順序可以被用戶地指定所覆蓋.在這裡面“+”字符是可選地,“-” 字符是倒轉指定鍵地方向.
pids 只列出進程標識符,之間運用逗號分隔.該進程列表必須在命令行參數地最後一個選項後面緊接著給出,中間不能插入 空格.比如:ps -f1,4,5.
以下介紹長命令行選項,這些選項都運用“--”開頭:
--sort X[+|-] key [,[+|-] key [,…]] 從 SORT KEYS 段中選一個多字母鍵.“+”字符是可選地,因為默認地方向就是按 數字升序或者詞典順序.比如: ps -jax -sort=uid,-ppid,+pid.
--help 顯示幫助信息.
--version 顯示該命令地版本信息.
在前面地選項說明中提到了排序鍵,接下來對排序鍵作進一步說明.需要注意地是排序中運用地值是 ps 運用地內部值,並非 僅用於某些輸出格式地偽值.排序鍵列表見表 4-3.
排序鍵列表
c
cmd
可執行地簡單名稱
C
cmdline
完整命令行
f
flags
長模式標志
g
pgrp
進程地組 ID
G
tpgid
控制 tty 進程組 ID
j
cutime
累計用戶時間
J
cstime
累計系統時間
k
utime
用戶時間
K
stime
系統時間
m
min_flt
次要頁錯
查找Zombie進程
首先,當桌面程序卡死的時候,你可以嘗試進入其他tty終端。切換方式:ctrl + alt + [1,2,3,4,5,6,7],7是桌面終端
其次,你可以使用top命令查看當前是否有Zombie進程
從上圖可以看到僵屍進程數,num zombie,num大於0,則代表系統存在僵屍進程
最後,利用ps命令查找Zombie進程
復制代碼
代碼如下:
ps -A -ostat,ppid,pid,cmd | grep -e '^[zZ]'
示例 :
殺死Zombie進程
直接kill -9 Zombiepid是沒有作用的,原因是:Zombie表示進程已經退出,想要清理這樣的進程,需要清除其父進程或者等很長時間後內核將其清除
復制代碼
代碼如下:
kill -HUP ppid
後記
不知道為什麼我注銷之後重新登錄還有這個僵屍進程,懷疑是否是LightDM的bug,不過Ubuntu12.04 desktop display manager就是LightDM,所以kill -HUP至少起到了注銷的作用,不用重啟了