Shell命令批量殺死進程的方法實現(xiàn)
前言
在Linux操作系統(tǒng)中,一般常用的殺死進程的命令是 kill、pkill、killall,根據(jù)殺死單個進程拓展至批量殺死進程。
1)查看指定名稱的進程,如下查看運行 kettle 程序的進程:
ps -ef | grep kettle | grep -v grep
結(jié)果如下圖

2)根據(jù)進程號(PID)殺死進程:第二列顯示的就是進程號
kill 命令殺死指定進程PID的進程
kill PID
3)強制殺死進程。(有些進程可能殺不死,就加個-9參數(shù),強制將其殺死)
kill -9 PID
4)殺死多個進程,在命令 kill -9 后面跟多個進程的PID號即可。(進程號之間以空格隔開)
kill -9 PID1 PID2 PID3 ...
1、強制殺死某個端口號下的所有進程
eg:殺死tcp端口8080下的所有進程
sudo fuser -k -n tcp 8080?
2、殺死某個命令下的所有進程
實例1:使用 killall 命令殺死所有python3 執(zhí)行的程序: killall [參數(shù)] [進程名]
killall 命令用于殺死指定名字的進程(kill processes by name)
sudo killall python3
注意:一般情況下,不會采用該方法去批量殺死進程,因為此方法可能會造成誤殺。
實例2:使用 pkill 命令殺死所有python3執(zhí)行的程序: pkill [參數(shù)] [進程名]
pkill 命令與 killall 命令相同,同樣用于殺死指定名字的進程(kill processes by name)
sudo pkill python3
3、殺死進程名中含有xxx字段的所有進程
實例:殺死進程名中含 ‘kettle’ 字段的所有進程
ps -def |grep 'kettle' |cut -c 9-15| xargs kill -9
對上述方法中的三個子命令詳解:
1)ps -ef |grep 'kettle'
這個命令會查出所有進程名字中含有 “kettle” 字段的進程,如下圖所示:

2)cut 9-15
從輸出結(jié)果的每行字符串中截取第9-15個字符, 剛好就是我們所需的進程號,如下圖所示:

3)xargs kill -9
命令 xargs 是將前面提取到的所有的進程號,作為參數(shù)傳給命令 kill -9 , 這樣我們就能殺死所有的進程。( xargs kill -9 中的 xargs 命令是用來把前面命令的輸出結(jié)果(PID)作為 kill -9 命令的參數(shù),并執(zhí)行該令)
如下圖所示:

進階優(yōu)化:
ps -ef | grep LOCAL=NO | grep -v grep | cut -c 9-15 | xargs kill -9
注意:(參照方法三中的批量殺死進程的執(zhí)行結(jié)果)使用 ps -ef | grep xxx 命令根據(jù)進程名中的字段查找進程ID的時候,同時會包含含有關鍵字《grep》的進程。如下圖所示:

解決辦法: grep -v grep 是在列出的進程中去除含有關鍵字 grep 的進程。
4、ps -ef|grep kettle | grep -v grep | awk '{print "kill -9 " $2}' |sh
命令詳解:
1)命令 grep -v grep 是過濾掉 grep 命令本身的進程;
2)$2表示第2列,即進程號PID;
3)命令 ps -ef | grep kettle | grep -v grep|awk '{print "kill -9 "$2}' 列出了所有要殺死的進程,并將之打印在了屏幕上。如下圖所示:

4)命令 ps -ef|grep kettle |grep -v grep|awk '{print "kill -9 " $2}' |sh 與3相比,其實是在3命令后面加上了 |sh ,表示執(zhí)行打印出來的這些命令,進而達到殺死進程名中包含xxx字段的進程。
5、ps -ef | grep kettle | grep -v grep | awk '{print $2}' | xargs kill -9
1)命令 awk '{print $2}' 表示輸出第二列的進程PID。如下圖所示:

6、執(zhí)行命令,將需要殺死的進程號賦值給變量,再使用命令 kill -9 殺死他們
pidlist=`ps -ef |grep kettle |grep -v grep|awk '{print $2}'`
kill -9 $pidlist將進程號被賦值的變量值打印出來:

到此這篇關于Shell命令批量殺死進程的方法實現(xiàn)的文章就介紹到這了,更多相關Shell批量殺死進程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Shell之function函數(shù)的定義及調(diào)用示例
本文主要介紹了Shell之function函數(shù)的定義及調(diào)用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08

