1. 程式人生 > 其它 >Linux命令列,使用kill -9 殺不掉程序的解決辦法

Linux命令列,使用kill -9 殺不掉程序的解決辦法

技術標籤:Linuxlinux

最近在學習spark時,遇到kill -9殺不掉程序的問題,在此做一記錄以供學習。問題如圖:
在這裡插入圖片描述
查詢資料後,確定殺不掉程序的原因有兩種:

  1. 這個程序是殭屍程序
  2. 此程序是"核心態"程序。

確定殭屍程序的方式:

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兩個程序號就可以了。