linux kill 9 殺不掉的程序

2021-09-18 05:53:24 字數 1336 閱讀 6697

kill -9 傳送sigkill訊號給程序,將其終止,但對於以下兩種情況不適用

1.該程序是殭屍程序(stat z),此時程序已經釋放所有的資源,但是沒有被父程序釋放。殭屍程序要等到父程序結束,或者重啟系統才可以被釋放。

2.程序處於「核心態」,並且在等待不可獲得的資源,處於「核心態 」的資源預設忽略所有訊號。只能重啟系統。

kill 只能殺死處於使用者狀態的程序。

由於父程序沒有退出,所以執行ps -aux | grep "z",可以檢視程序的狀態,發現如下(綠色標出部分)

root       1937  0.0  0.1 389000  4336 ?        sl   09:12   0:00 /usr/bin/gnome-keyring-daemon --daemonize --login

root       4447  0.0  0.0 112680   964 pts/2    r+   10:16   0:00 grep --color=auto z

[root@localhost linux_test]# ps -aux | grep "[zz]"

user        pid %cpu %mem    vsz   rss tty      stat start   time command

root          1  0.0  0.1 128164  6828 ?        ss   09:07   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21

root       1937  0.0  0.1 389000  4336 ?        sl   09:12   0:00 /usr/bin/gnome-keyring-daemon --daemonize --login

root      4385  0.0  0.0      0     0 pts/0    z+   10:16   0:00 [a.out]

root       4455  0.0  0.0 112680   976 pts/2    s+   10:17   0:00 grep --color=auto [zz]

從以上資訊 可以得到該程序的程序號是4385

此時的解決方法有兩種

《1》cat /proc/4385/status找到該子程序對應的父程序,將其父程序殺死

state: z (zombie)

tgid: 4385

ngid: 0

pid: 4385

ppid: 4384

執行kill -9 4384   如果父程序也殺不死,那就只能執行重啟了

原文: 

linux ,kill 9 多個程式

ps ef grep php grep v grep cut c 9 15 xargs kill 9管道符 用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。下面說說用管道符聯接起來的 幾個命令 ps ef 是linux 裡檢視所有程序的命令。這時檢索出的程序將作為下一條命令 gre...

kill 9 殺不掉程序

kill 9 傳送sigkill訊號給程序,將其終止,但對於以下兩種情況不適用 1.該程序是殭屍程序 stat z 此時程序已經釋放所有的資源,但是沒有被父程序釋放。殭屍程序要等到父程序結束,或者重啟系統才可以被釋放。2.程序處於 核心態 並且在等待不可獲得的資源,處於 核心態 的資源預設忽略所有訊...

處理Oracle中殺不掉的鎖

一些oracle中的程序被殺掉後,狀態被置為 killed 但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟資料庫。現在提供一種方法解決這種問題,那就是在oracle中殺不掉的,在os一級再殺。1.下面的語句用來查詢哪些物件被鎖 select object name,machine,s.sid...