Como matar múltiplos processos

18

para encontrar o PID do processo para matar o uso:

pgrep <process command>

Eu então uso o comando kill para matar o PID retornado por pgrep <process command>

kill <PID>

Esses comandos podem ser combinados em um, de modo a matar o PID ou o PID retornado por pgrep <process command> ? Ou existe um método para matar vários processos pelo nome do comando?

Algo como: kill(pgrep <name of process>)

    
por blue-sky 15.07.2016 / 12:02

4 respostas

25

Você pode usar o pkill:

pkill httpd

Você também pode querer usar a substituição de processos (embora isso não seja tão claro):

kill $(pgrep command)

E você pode querer usar xargs :

pgrep command | xargs kill
    
por 15.07.2016 / 12:11
17

Você também pode usar killall , por exemplo,

killall firefox

para enviar SIGTERM para todos os processos firefox .

    
por 15.07.2016 / 12:27
8

Sim, você pode usar um recurso bash e fazer um loop pela saída.

$ for proc in $(pgrep <process command>); do kill $proc; done
    
por 15.07.2016 / 12:12
0

Você pode matar vários processos com array. Nesse caso, você pode especificar opções como $ip , $hostname ou algo semelhante.

ip=your_ip_address; declare -a arr=$(ps aux|grep tail|grep $ip|awk '{print $2}'); for pid in ${arr[@]}; do kill -9 $pid; done;
    
por 07.06.2018 / 10:34