目錄

刪除 Linux 上的殭屍程序

有自己架 server 的應該會知道,機器開機一陣子之後就會莫名出現 Zombie Process,login 主機的時候會顯示出來有幾個,雖然不懂會怎樣但對有潔癖的人會覺得很惱。

刪除指令

查了一些資料後,雖然還是不知道是什麼造成的不過卻查到很厲害的文章,寫得又清楚又實用,只好把重點抄下來,其餘的還是回原作者網站看吧。

找出殭屍程序

1
ps -Al | grep -w Z

從找到的程序資訊中,分析出 pid

1
ps -Al | grep -w Z | awk '{print $4}'

將分析出來的 pid 串連成一個陣列

1
ps -Al | grep -w Z | awk '{print $4}' | xargs

將陣列中的每一個 pid 的程序,利用 kill 來終止、刪除它們

1
ps -Al | grep -w Z | awk '{print $4}' | xargs sudo kill -9

若再跑一次 ps -Al | grep -w Z 還是看到有 zombie process

先確認父程序資訊

1
ps -Al | grep -w Z | awk '{print $5}' | xargs ps -lp

再確認相依的子程序資訊

1
ps -Al | grep -w Z | awk '{print $5}' | xargs ps -l --ppid

如果其中沒有重要程序或是其他正在執行中程序的話,就可以安心地將父程序給刪除掉

1
ps -Al | grep -w Z | awk '{print $5}' | xargs sudo kill -9

經驗

實際照做之後,像我的情況是 sh 變成 zombie process,所以跑了最後一行直接斷線 = = ,不過確實所有的 zombie process 都刪除了喔。