Piping PIDs em kill não funciona

0

Eu estou lutando contra um bug no IntelliJ, onde as instâncias do nailgun param quando as dependências do SNAPSHOT são atualizadas. Quero automatizar a eliminação de todos os processos que contenham nailgun em seu nome .

Até agora posso obter todos os PIDs relevantes da seguinte forma:

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

Isso me dá, por exemplo:

26759
27852
28817
29963
31234
31577

Eu posso ir e executar kill para cada um deles manualmente, como kill 26759 etc. Mas a tubulação não funciona:

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

Isto apenas imprime

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

Como canalizar a lista de PIDs para matar?

    
por 0__ 11.06.2017 / 17:08

1 resposta

3

Colocando os PIDs em uma linha com xargs works:

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

O único incômodo é que isso imprime kill: (xyz): No such process para a instância grep , que também aparece na lista ps .

Outra alternativa:

pgrep -f nailgun | xargs kill
    
por 11.06.2017 / 17:12

Tags