Linux下批量殺掉 包含某個關鍵字的 程序進程

有時候由於一些狀況,須要把 linux 下符合某一項條件的全部進程 kill 掉,又不能用 killall 直接殺掉某一進程名稱包含的全部運行中進程(咱們可能只須要殺掉其中的某一類或運行指定參數命令的進程),這個時候咱們須要運用 psgrepcut 和 kill 一塊兒操做。

ok,下面給出具體的參考:linux

ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

運行這條命令將會殺掉全部含有關鍵字"LOCAL=NO"的進程,是否是很方便?code


下面將這條命令做一下簡單說明:

管道符"|"用來隔開兩個命令,管道符左邊命令的輸出會做爲管道符右邊命令的輸入。

"ps -ef" 是linux裏查看全部進程的命令。這時檢索出的進程將做爲下一條命令"grep LOCAL=NO"的輸入。

"grep LOCAL=NO" 的輸出結果是,全部含有關鍵字"LOCAL=NO"的進程。

"grep -v grep" 是在列出的進程中去除含有關鍵字"grep"的進程。

"cut -c 9-15" 是截取輸入行的第9個字符到第15個字符,而這正好是進程號PID。

"xargs kill -9" 中的 xargs 命令是用來把前面命令的輸出結果(PID)做爲"kill -9"命令的參數,並執行該命令。"kill -9"會強行殺掉指定進程。

其它相似的狀況,只須要修改"grep LOCAL=NO"中的關鍵字部分就能夠了。blog

另外一種方法,使用awk:進程

ps x|grep gas|grep -v grep |awk '{print $1}'|xargs kill -9
相關文章
相關標籤/搜索