Linux 批量殺掉進程(包含某個關鍵字)
場景說明
現場環境有十多個包含 ”celery” 關鍵字的進程在運行,每次重啟服務,需要將這些進行kill掉,然后重新啟動。
可以用如下命令批量kill掉這些進程
kill -9 PID1 PID2 PID3 PID4.....
(其中,PID是查詢到的進程號,多個PID之間有空格隔開)
(該方法雖然可行,但是很繁瑣)
優化方案
方案1:截取PID
ps -ef|grep celery|grep -v grep|cut -c 9-15
(其中, cut -c 命令用於字符截取)
使用如下命令,即可將所有包含“celery”字樣的進程全部殺掉
ps -ef|grep celery|grep -v grep|cut -c 9-15|xargs kill -9
方案2:參數獲取
ps -ef|grep celery|grep -v grep |awk '{print $2}'
使用如下命令,即可將所有包含“celery”字樣的進程全部殺掉
ps -ef|grep celery|grep -v grep |awk '{print $2}'|xargs kill -9
方案3:參數獲取
和方案2類似,命令如下:
ps x|grep celery|grep -v grep |awk '{print $1}'|xargs kill -9