Linux命令列,使用kill -9 殺不掉程序的解決辦法
阿新 • • 發佈:2021-01-20
最近在學習spark時,遇到kill -9殺不掉程序的問題,在此做一記錄以供學習。問題如圖:
查詢資料後,確定殺不掉程序的原因有兩種:
- 這個程序是殭屍程序
- 此程序是"核心態"程序。
確定殭屍程序的方式:
1.用 ps 和 grep 命令檢視殭屍程序,如圖:
ps -A -ostat,ppid,pid,cmd | grep -e
命令註解: -A 引數列出所有程序 -o 自定義輸出欄位 我們設定顯示欄位為 stat(狀態), ppid(程序父id), pid(程序id),cmd(命令)這四個引數 因為狀態為 z或者Z的程序為殭屍程序,所以我們使用grep抓取stat狀態為zZ程序 執行結果參考如下:
2.用top命令檢視程序,如圖,zombie是殭屍程序:
解決辦法:
1.使用 ps -A -ostat,ppid,pid,cmd | grep -e
命令,檢視程序號以及父程序號
2.kill -9 父程序號 子程序號,如圖:
也可以進入到 /proc/1544
目錄下,執行cat status
,檢視父程序號,如圖:
最後kill -9兩個程序號就可以了。