linux一条命令kill掉符合条件的进程

linux一条命令kill掉符合条件的进程

我们可以列出有所有进程

ps aux 或者 ps -ef

也可以根据条件过滤我们感兴趣的进程

ps -ef | grep "python /opt/test.py"

但是我们怎么把上面过滤后的进程杀掉呢?

使用awk

kill $(ps -fe | grep "[p]ython /opt/test.py" | awk '{print $2}')

解释上面的命令,

ps -ef 列出所有进程

grep 过滤进程,[p] 是过滤掉 grep这个进程,因为ps -ef会列出grep xxx这条命令的进程,这个进程不是我们想要的。如果是其他程序,就把其他程序的首字母用放括号包起来

awk '{print $2}'表示列出第二列数据,第二列刚好是进程id,这个就是我们想要的。

$()表示把括号中执行的结果传给前面的命令(这里是kill)

 

除此之外,还有一个办法就是使用pgrep,这个命令专门过滤进程然后输出是就是进程id

kill -9 $(pgrep -f "python /opt/test.py")

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *