pour trouver le PID du processus à tuer, utilisez:
pgrep <process command>
J'utilise ensuite la commande kill pour tuer le PID retourné 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>)
kill
ps
process-management
ciel bleu
la source
la source
pkill
? Vous pouvez également utiliserxargs
.pgrep
page de manuel mentionnepkill
partout (car les 2 commandes proviennent du même package).Réponses:
Vous pouvez utiliser pkill:
Vous pouvez également utiliser la substitution de processus (bien que ce ne soit pas aussi clair):
Et vous voudrez peut-être utiliser
xargs
:la source
pgrep
etkill
. Utilisez simplementpkill
.pkill
obtention de la liste de processus et l'envoi du signal, c'est juste plus difficile à voir dans ce cas.kill $(ps|head -1)
pour éviter la condition de course ... mais il n'y a vraiment pas de moyen de l'éviter. Le processus pourrait mourir à tout moment dans le pipeline.Vous pouvez également utiliser
killall
, par exempleà envoyer
SIGTERM
à tous lesfirefox
processus.la source
killall
a des significations différentes sur différents systèmes Unix - si vous êtes sur un système non Linux, assurez-vous de vérifier la documentation.killall -KILL firefox
peut être tellement gratifiant.killall
c'est pourquoi je ne l'utilise jamais. Par exemple, courirkillall
sur un boîtier Solaris est désastreux.Oui, vous pouvez utiliser une fonction bash et boucler sur la sortie.
la source
kill <no>:failed: operation not permitted
Vous pouvez tuer plusieurs processus avec array. Dans ce cas , vous pouvez spécifier les options comme
$ip
,$hostname
ou quelque chose de similaire.la source