我见过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可以吗?
答案 0 :(得分:1)
如果我理解正确,你需要选择第一个单词,然后选择除最后一行之外的所有单词。你可以用
做到这一点awk '{ print $1 }' | head -n -1
总命令将是
kill -9 $(ps aux | grep 'maya.bin' | awk '{ print $1 }' | head -n -1)