前段時間,一哥們,去殺Linux服務器的進程,發現kill命令失靈了,怎么殺都殺不死。
然后上網查了下資料,原來是要被殺的進程,成為了僵屍進程。
僵屍進程的查看方法:
利用命令ps,可以看到有標記為Z的進程就是僵屍進程。
知道了原因,就想怎么去把這個僵屍進程干掉。網上說了兩種方法,一種最簡單的方法,重啟服務器,相當於清理內存了。方法很簡單,但是不是很實用,因為服務器,不是你一個人在用,服務器是不能隨隨便便重啟的。第二種方法,殺掉其父進程,父進程干掉后,該僵屍進程也就消失了。
可以用 ps -ef | grep 進程ID ,找到其父進程,然后 kill -9 父進程ID
其中ps命令:
ps aux
USER
:該 進程 屬於哪個用戶
•
PID
:該 進程 的ID。
• %
CPU
:該 進程 使用掉的
CPU
資源百分比;
• %
MEM
:該 進程 所占用的物理內存百分比;
•
VSZ
:該 進程 使用掉的虛擬內存量 (Kbytes)
•
RSS
:該 進程 占用的固定的內存量 (Kbytes)
•
TTY
:該 進程 是在哪個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/
0
等等的,則表示為由網絡連接進主機的程序。
•
STAT
:該程序目前的狀態,主要的狀態有:
o
R
:該程序目前正在運作,或者是可被運作;
o
S
:該程序目前正在睡眠當中 (可說是 idle 狀態啦!),但可被某些訊號 (signal) 喚醒。
o
T
:該程序目前正在偵測或者是停止了;
o
Z
:該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆屍) 程序的狀態
•
START
:該 進程被觸發啟動的時間;
•
TIME
:該 進程 實際使用
CPU
運作的時間。
•
COMMAND
:該程序的實際指令為何