㈠ 【kill】kill -9 殺不死的進程處理辦法
kill -9 發送SIGKILL信號給進程將其終止,但對於以下兩種情況不適用:
1.該進程是僵屍進程(STAT z),此時進程已經釋放所有的資源,但是沒有被父進程釋放。
僵屍進程要等到父進程結束,或者重啟系統才可以被釋放。
2.進程處於「內核態」,並且在等待不可獲得的資源,處於「內核態 」的資源默認忽略所有信號,只能重啟系統解決。
進程在linux 中會處於兩種狀態,即用戶態和內核態。只有處於用戶態的進程才可以用「kill」命令將其終止
一般可以用top命令發現動態進程表,其中zombie是僵屍進程:
用ps和grep命令尋找僵屍進
# ps -A -o stat,ppid,pid,cmd
# ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
命令註解:
-A 參數列出所有進程
-o 自定義輸出欄位
我們設定顯示欄位為 stat(狀態), ppid(進程父id), pid(進程id),cmd(命令)這四個參數 因為狀態為 z或者Z的進程為僵屍進程。
我們使用grep抓取stat狀態為zZ進程,使用 kill -HUP ${pid} 來殺掉這個僵屍進程。
㈡ Linux終止前台進程的命令
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
㈢ Linux中kill -9 $$是做什麼的啊
$$ 是您正在操作的shell的PID
echo $$ #顯示當前shell的PID
kill -9 $$ #殺死當前shell
註: shell是你(用戶)和Linux(或者更准確的說,是你和Linux內核)之間的介面程序。你在提示符下輸入的每個命令都由shell先解釋然後傳給Linux內核。常用的有bash,csh,ksh。
㈣ Linux裡面kill -9的含義是什麼
一般來說Linux里邊的kill是殺死進程的意思。而加了一個-9。是表示無條件的殺死進程。所以這個命令的意思就是,不管這個進程正在執行還是已經結束,都要殺死掉它。
㈤ 4-7 Linux 強殺進程 --- kill (kill -9 實驗)
kill -9 PID —— 強制殺死一個進程。
1、kill -9 殺死後台運行的進程。
紅色下劃線:sleep 10000 & —— 後台運行延時 10000 秒的命令,進程 ID 為1317。
黃色下劃線:ps —— 列出 1317 sleep 命令的進程。
(PID:進程 ID、PGID:線程組 ID、SID:會話 ID、TTY:進程運行的終端,標識那個終端控制。(pts遠程終端、tty系統終端)、TIME:進程運行的時間 和 CMD:命令的名稱和參數)。
jobs -l —— 列出後台運行的命令,1317 sleep 命令正在後台運行。
藍色下劃線:kill -9 1317—— 殺死 1317 進程。
綠色方框:ps 查詢進程,1317 sleep進程已經被殺死(Killed)。jobs -l 已經沒有後台運行的1317 sleep 命令。
2、kill -9 終止掛起的進程。
紅色下劃線:執行 sleep 10000 後 ctrl + z 掛起。
黃色下劃線:ps -j 查看進程,有 1342 sleep 的進程。jobs -l 查看後台,1342 sleep 的狀態是 stopped 暫停狀態。
藍色下劃線:kill -9 殺死 1342 進程。此時系統沒有反饋信息。
綠色下劃線:ps -j 查看進程,1342 sleep 已經被殺死(Killed)。jobs -l 查看後台,已經沒有了 1342 sleep。
從實驗上看:
1、後台命令運行時(Running),執行 kill -9 可以強殺進程。
2、掛起命令,處於暫停狀態時(Stopped),執行 kill -9 後通過 ps 查詢進程, 可以看到進程已經被殺死。jobs 也查不到有後台命令。(這里和 kill -2、kill -15 不一樣。kill -2、kill -15 在掛起命令,處於暫停狀態時(Stopped)時執行,通過 ps 還可以查詢到進程,jobs 也可以查詢到後台仍有處於暫停狀態的命令。)
㈥ 在linux系統中kill -9 java 1910和kill -9 1910有什麼區別
下面是kill -9的說明:
kill -s 9 15572
其中,-s 9 制定了傳遞給進程的信號是9,即強制、盡快終止進程。 15572則是上面ps查到的火狐(firefox)的PID。
簡單吧,但有個問題,進程少時ps還無所謂,進程多了,就會覺得痛苦了,無論是ps -ef 還是ps -aux,每次都要在一大串進程信息裡面查找到要殺的進程PID,看的眼都花了。
用法詳解:
kill -9, 這個強大和危險的命令迫使進程在運行時突然終止,進程在結束後不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效。
當使用此命令時,一定要通過ps -ef確認沒有剩下任何僵屍進程。只能通過終止父進程來消除僵屍進程。如果僵屍進程被init收養,問題就比較嚴重了。殺死init進程意味著關閉系統。
如果系統中有僵屍進程,並且其父進程是init,而且僵屍進程佔用了大量的系統資源,那麼就需要在某個時候重啟機器以清除進程表了。