0

I'm fighting a bug in IntelliJ where nailgun instances screw up when SNAPSHOT dependencies are updated. I want to automate killing all processes that contain nailgun in their name.

So far I can get all relevant PIDs like so:

ps -x -o pid,cmd | grep nailgun | cut -f 1 -d ' '

This gives me for example:

26759
27852
28817
29963
31234
31577

I can go and run kill for each of them manually, like kill 26759 etc. But piping doesn't work:

ps -x -o pid,cmd | grep nailgun | cut -f 1 -d ' ' | kill

This just prints

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

How do I pipe the list of PIDs to kill?

0__
  • 684

1 Answers1

3

Putting the PIDs onto one line with xargs works:

ps -x -o pid,cmd | grep nailgun | cut -f 1 -d ' ' | xargs kill

The only annoyance is that this prints kill: (xyz): No such process for the grep instance which shows up in the ps list as well.

Another alternative:

pgrep -f nailgun | xargs kill
0__
  • 684