Linux批量kill包含某個關鍵字的進程
有時候因為(wéi)一些情況,需要把 linux 下符合某一項(xiàng)條件的所有進(jìn)程 kill 掉,又不能用 killall 直接殺掉某(mǒu)一進程名稱包含的所有運行中進程(我們可能隻需要殺掉其中的某一類或運行指定參數命令的進程),這(zhè)個時(shí)候我們需要運用(yòng) ps, grep, cut 和 kill 一起操作(zuò)。
ok,下麵給(gěi)出具體的參考:
ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
運行這條命令將會殺掉所有含有關鍵字"LOCAL=NO"的(de)進程,是不是很方便?
下麵將這(zhè)條命(mìng)令作一下(xià)簡單說明:
管道符"|"用(yòng)來(lái)隔(gé)開兩個命令,管道符左(zuǒ)邊命令的輸出會作為管道符右邊命令(lìng)的輸入。
"ps -ef" 是linux裏查看所(suǒ)有進程的命令。這時檢索出的(de)進程將作為下一(yī)條命令"grep LOCAL=NO"的輸入。
"grep LOCAL=NO" 的輸出(chū)結果是,所有含有關鍵字"LOCAL=NO"的進程(chéng)。
"grep -v grep" 是在列出的進程中去(qù)除含(hán)有關鍵字"grep"的(de)進程。
"cut -c 9-15" 是截取輸入行的第9個字符(fú)到第15個字符(fú),而這正好是進程號PID。
"xargs kill -9" 中(zhōng)的 xargs 命令是用來把前麵命(mìng)令的(de)輸(shū)出結果(PID)作為"kill -9"命令(lìng)的(de)參數,並執行該命令。"kill -9"會強行殺掉(diào)指定進程(chéng)。
其它類似(sì)的(de)情況,隻需(xū)要修改"grep LOCAL=NO"中的關鍵字(zì)部分就可以了。
另一種(zhǒng)方法,使用awk
ps x|grep gas|grep -v grep |awk '{print $1}'|xargs kill -9
關鍵詞:Linux
閱讀(dú)本(běn)文後您有什麽感想? 已有 人給出評價!
- 1
- 1
- 0
- 4
- 0
- 0