如何实现grep某些具有特定关键字的进程,然后杀死它们

使用多卡训练模型时,会生成多个进程。
使用ps aux|grep caffe
会显示出所有带有'caffe'关键字进程的信息,目前需要手动kill这些进程,有没有什么命令或者脚本能自动查找到这些进程并且kill它们。
比如在ps aux|grepp |。。。
或者使用命令或shell指令

你找到进程后,看她的pid,然后直接kill不行吗?

你找到进程后,看她的pid,然后直接kill不行吗?不行吗?不行吗?不行吗?不行吗?

ps -aux|grep 'xxxx'
kill -9 pid

为保险起见,先执行这个,对比一下看看是不是你要查找所有进程的id,如果是,可以使用语句2进行批量杀
ps aux|grep caffe|awk '{print $2}'

ps aux|grep caffe|awk '{print $2}' |xargs kill -9

pkill直接就可以使用模式匹配并发送信号。

ps -aux|grep name
kill -9 pid

这个就是答案

试试这个

ls ps ax |grep sshd | awk '{ print $1 }'

更正一下

kill ps ax |grep sshd | awk '{ print $1 }'

不好意思。反向单引号,被编辑器过滤了。发个截图。

图片说明

ps -ef|grep 关键字|grep -v grep|cut -c 9-15|xargs kill -9

你得自己写个小程序,或者脚本,大概就是ps aux | grep 后,好像可以获取一行内容,然后像操作数据库一样,根据grep的东西,找到相应pid,然后执行kill -kill,我记得以前看视频有见到过,但是现在忘了

使用for循环在shell一键循环kill进程号. 命令如下
for i in ps -ef|grep caffe|awk '{print $2}';do kill -15 $i;done
这样多来两下 或者使用-9 一般建议使用-15

用下面这条命令把,亲测有效
kill -9 $(ps -eo pid,command | grep caffe | grep -v 'grep' | cut -d ' ' -f 2)