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")
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.