1.使用top命令查看是否有僵屍進程
top
可以看到目前系統中有兩個僵屍進程
2.定位僵屍進程
ps -ao stat,ppid,pid,cmd | grep -e '^[Zz]'
從左到右各項值的意思分別是:
Z:進程狀態 3425:父進程ID 3457: 子進程ID [Xsession]: 命令
3.殺死僵屍進程
- 使用
kill -hup pid
殺死進程 - 使用
kill -hup ppid
殺死父進程,第一種不適用的情況下使用此方法
kill -hup 3457 # 通過pid殺死進程
# or
kill -hup 3425 # 通過ppid殺死進程
4.檢查
ps -ao stat,ppid,pid,cmd | grep -e '^[Zz]'
# or
top
參數解讀
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
- -a 參數列出所有進程
- -o 自定義輸出字段 stat(狀態)、ppid(進程父id)、pid(進程id)、cmd(命令)
- 因為狀態為z或者Z的進程為僵屍進程,所以我們使用grep抓取stat狀態為zZ進程