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>)
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
Vous pouvez également utiliser killall
, par exemple.
killall firefox
pour envoyer SIGTERM
à tous les processus firefox
.
Oui, vous pouvez utiliser une fonction bash et boucler sur la sortie.
$ for proc in $(pgrep <process command>); do kill $proc; done
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;