在工作中經(jīng)常需要停止JAVA進(jìn)程橘蜜,停止時間也比較長蚤认,那么有時候因為一些情況稳摄,需要把 linux 下JAVA所有進(jìn)程
kill 掉室囊,又不能用killall 直接殺掉某一進(jìn)程名稱包含的所有運行中進(jìn)程(我們可能只需要殺掉其中的某一類或運行指定參數(shù)命令的進(jìn)程)藻雪,這個時候我們需要運用ps,
grep, cut 和 kill 一起操作秘噪。
以下的腳本可以參考:
1.ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
運行這條命令將會殺掉所有含有關(guān)鍵字"LOCAL=NO"的進(jìn)程,如果有ORACLE數(shù)據(jù)庫進(jìn)程的話勉耀,只會kill監(jiān)聽指煎,不會影響進(jìn)程。
下面將這條命令作一下簡單說明:
管道符"|"用來隔開兩個命令便斥,管道符左邊命令的輸出會作為管道符右邊命令的輸入至壤。
"ps -ef" 是linux里查看所有進(jìn)程的命令。這時檢索出的進(jìn)程將作為下一條命令"grep LOCAL=NO"的輸入枢纠。
"grep LOCAL=NO" 的輸出結(jié)果是像街,所有含有關(guān)鍵字"LOCAL=NO"的進(jìn)程。
"grep -v grep" 是在列出的進(jìn)程中去除含有關(guān)鍵字"grep"的進(jìn)程晋渺。
"cut -c 9-15" 是截取輸入行的第9個字符到第15個字符镰绎,而這正好是進(jìn)程號PID。
"xargs kill -9" 中的
xargs 命令是用來把前面命令的輸出結(jié)果(PID)作為"kill -9"命令的參數(shù)些举,并執(zhí)行該命令跟狱。"kill -9"會強(qiáng)行殺掉指定進(jìn)程。
其它類似的情況户魏,只需要修改"grep LOCAL=NO"中的關(guān)鍵字部分就可以了驶臊。
2.使用awk
ps x|grep gas|grep -v grep |awk '{print $1}'|xargs kill -9
3.使用pkill
pkill java
如果遇到頑固狀態(tài)的挪挤,可以使用
pkill -9f java 殺掉。