Como matar dois ou mais processos com um comando kill?

5

Estou usando o seguinte comando para eliminar um processo java via shell script:

pidof java|xargs kill -9 $1

E se a lista de pidof output tiver mais de um elemento? Como eu mato os dois com o mesmo comando?

    
por mico 25.08.2011 / 12:08

4 respostas

13

Primeiro, confira pkill . Você pode matar qualquer número de processo dado o seu nome:

pkill java

Você pode até usar o comando completo com argumentos como parte da pesquisa

pkill -f some_string_in_arguemnts

Em segundo lugar, sua construção com xargs funcionará muito bem para vários PIDs, desde que sejam canalizados como espaços ou números separados de nova linha.

    
por 25.08.2011 / 12:13
6

O comando killall está disponível na maioria das Linuces, de qualquer forma. Você pode ter que instalá-lo em algumas distribuições. Ele permite que você mate todos os processos que correspondam ao nome fornecido na linha de comando.

    
por 25.08.2011 / 14:42
3

pgrep pode fornecer a lista de PIDs

Por exemplo:

pgrep java 

lhe dará a lista de PIDs relacionados ao java. Então você pode usar:

kill -9 'pgrep java'
    
por 26.08.2011 / 10:41
0

Eu prefiro

kill -9 'pidof java'

por causa da saída in-line

> pgrep gulp
6316
6565
> pidof gulp
6565 6316

O problema com pkill , bem você não tem instalado por padrão em alguns sistemas (como o Ubuntu)

    
por 02.10.2016 / 22:22