Je dois rechercher un certain processus et le tuer. J'ai écrit une commande comme celle-ci:
ps -e | grep dmn | awk '{print $1}' | kill
Où le nom du processus est dmn
. Mais ça ne fonctionne pas. Comment puis-je trouver les processus par leur nom et leur kill
?.
kill $(ps -e | grep dmn | awk '{print $1}')
Si vous souhaitez supprimer plusieurs processus, vous pouvez utiliser ceci:
ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill
Remarque: vous devez supprimer le processus grep lui-même de la sortie. C’est pourquoi grep -v grep
est utilisé.
J'ajoute simplement d'autres éléments, mais j'aime bien utiliser les fonctionnalités de regex d'awk:
kill $(ps | awk '/dmn/{print $1}')
Si vous avez la commande pidof
sur votre système (je sais que des shells tels que ZSH sont livrés avec cela par défaut, sauf erreur de ma part), vous pouvez faire quelque chose comme.
kill -9 $(pidof dmn)
Vous pouvez également utiliser killall :
killall dmn
for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done
bonjour les amis .. nous pouvons le faire en utilisant pour la boucle.
"Une recherche" désigne ici le nom du processus que vous souhaitez rechercher, par exemple "Java". Par conséquent, supposons que le nombre de processus Java soit supérieur à 200;.
vous pouvez donc utiliser la commande ci-dessus.
Merci.
Vous n’avez peut-être pas besoin de pipe
pour cela, si vous avez la commande pidof
et connaissez le nom de l’image, je l’ai fait comme ceci:
kill $(pidof synergyc)
$()
Je comprends cela car il convertit cette sortie en une variable que kill peut utiliser, essentiellement comme le ferait pipe. Plus court et plus facile à comprendre que certaines autres options, mais aussi peut-être moins flexible et plus direct.