我正在对抗 IntelliJ 中的一个错误,当更新 SNAPSHOT 依赖项时,钉枪实例会出错。我想要自动杀死名称中包含nailgun 的所有进程。
到目前为止,我可以获得所有相关的 PID,如下所示:
ps -x -o pid,cmd | grep nailgun | cut -f 1 -d ' '
例如,这给了我:
26759
27852
28817
29963
31234
31577
我可以手动运行kill
它们,例如kill 26759
等等。但是管道不起作用:
ps -x -o pid,cmd | grep nailgun | cut -f 1 -d ' ' | kill
这只是打印
杀死:用法:杀死[-s sigspec | -n 符号| -sigspec] pid | jobspec ...或kill -l [sigspec]
如何通过管道传递要杀死的 PID 列表?
答案1
将 PID 放在一行上即可xargs
:
ps -x -o pid,cmd | grep nailgun | cut -f 1 -d ' ' | xargs kill
唯一的烦恼是,这会打印列表中也显示的实例kill: (xyz): No such process
。grep
ps
另一种选择:
pgrep -f nailgun | xargs kill