1.絕殺 kill -9 PID 殺掉單一進程 例如:kill -9 pid號
同意的 kill -s SIGKILL
這個強大和危險的命令迫使進程在運行時突然終止,進程在結束后不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效。
當使用此命令時,一定要通過ps -ef確認沒有剩下任何僵屍進程。只能通過終止父進程來消除僵屍進程。如果僵屍進程被init收養,問題就比較嚴重了。殺死init進程意味着關閉系統。
如果系統中有僵屍進程,並且其父進程是init,而且僵屍進程占用了大量的系統資源,那么就需要在某個時候重啟機器以清除進程表了
2.killall命令 如: killall -9 java 殺掉所有的java進程
killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。
3.根據條件過濾后殺掉進程:如:ps -ef |grep simo- |
ps -ef | grep simo- | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -9
多個過濾條件求並集
grep simo- :過濾出simo- 字樣
grep -v grep" 在文檔中
過濾掉包含有grep字符的行
awk '{print $2}' $fileName : 一行一行的讀取指定的文件, 以空格作為分隔符,打印第二個字段,第二個字段即 pid號, 過濾出pid號
比如有這樣一個文件
a1 b1 c1 d1
a2 b2 c2 d2
執行的結果是,輸出
b1
b2
-r, --no-run-if-empty
如果標准輸入中沒有任何非空的字符,則不運行命令;默認情況下即使標准輸入沒有非空字符,命令也會被運行一次
awk '{print $2}' $fileName : 一行一行的讀取指定的文件, 以空格作為分隔符,打印第二個字段,第二個字段即 pid號, 過濾出pid號
比如有這樣一個文件
a1 b1 c1 d1
a2 b2 c2 d2
執行的結果是,輸出
b1
b2
-r, --no-run-if-empty
如果標准輸入中沒有任何非空的字符,則不運行命令;默認情況下即使標准輸入沒有非空字符,命令也會被運行一次