web-dev-qa-db-fra.com

Comment tuer plusieurs processus

pour trouver le PID du processus à tuer, utilisez:

pgrep <process command>

J'utilise ensuite la commande kill pour tuer le PID renvoyé par pgrep <process command>

kill <PID>

Ces commandes peuvent-elles être combinées en une seule afin de tuer le PID ou les PID renvoyés par pgrep <process command>? Ou existe-t-il une méthode pour tuer plusieurs processus par nom de commande?

Quelque chose comme: kill(pgrep <name of process>)

22
blue-sky

Vous pouvez utiliser pkill:

pkill httpd

Vous pouvez également utiliser la substitution de processus (bien que ce ne soit pas aussi clair):

kill $(pgrep command)

Et vous voudrez peut-être utiliser xargs:

pgrep command | xargs kill
30
MatthewRock

Vous pouvez également utiliser killall, par exemple.

killall firefox

pour envoyer SIGTERM à tous les processus firefox.

17
Byte Commander

Oui, vous pouvez utiliser une fonction bash et boucler sur la sortie.

$ for proc in $(pgrep <process command>); do kill $proc; done
9
lcipriani

Vous pouvez tuer plusieurs processus avec array. Dans ce cas, vous pouvez spécifier des options comme $ip, $hostname ou quelque chose de similaire.

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;
0