如何杀死同名的所有进程但保持最新进程运行?

时间:2016-03-09 14:48:36

标签: awk ps

我见过this但是我无法弄清楚如何杀死给定名称的所有进程但是保持最新的进程正在运行。

例如,这将显示正在运行的进程:

$ ps -eo pid,etime,comm | grep maya.bin
23752       10:40 maya.bin
23841       12:04 maya.bin
23891       14:46 maya.bin

不知何故,我需要过滤掉PID 23752 23841(但不是23891)并将其删除。

如果我能弄清楚如何找到这些PID,可能是通过awk,我可以通过例如杀死。

ps -eo pid,etime,comm | awk ??? | kill -9

kill -9 $(ps aux | grep 'maya.bin' | awk ??? )

使用awk可以吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你需要选择第一个单词,然后选择除最后一行之外的所有单词。你可以用

做到这一点
awk '{ print $1 }' | head -n -1

总命令将是

kill -9 $(ps aux | grep 'maya.bin' | awk '{ print $1 }' | head -n -1)