Comment tuer tous les processus python sauf un depuis bash


11

Comment puis-je tuer de bash tous les processus python à l'exception d'un script python. (Je connais son nom, mais son pid peut parfois être changé).

J'ai besoin d'une sorte de pkill -f "python"mais avec l'exclusion du script spécifique à python.

S'il vous plaît donnez votre avis.

Réponses:


13

ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill

Mise à jour: explication étape par étape comme demandé dans les commentaires

  • ps aux |grep python- afficher tous les processus qui correspondent au pythonmodèle
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - exclure les processus que vous ne voulez pas tuer
  • awk '{print $2}' - afficher le deuxième champ de sortie, c'est PID.
  • xargs kill- appliquer la killcommande à chaque argument d'entrée (PID).

Si vous n'êtes pas familier avec la xargscommande, je vous conseillerais de ne pas vous inquiéter si vous ne la comprenez pas tout de suite. Cela pourrait paraître assez délicat pour la première fois. J'ai posté un exemple très simple de son utilisation, vous pouvez google pour en savoir plus.


1
Très bien, mais pouvez-vous expliquer comment cela fonctionne, par exemple, qu'est-ce que awk '{print $ 2}' et xargs tuent?
user370717

awk '{print $2}' - imprime le deuxième champ de pssortie, dans le cas présent PID. xargsapplique la killcommande à chacunPID
user1700494

1
Mettre cela dans un commentaire est bien, mais je préfère voter pour votre réponse après que ce commentaire bien formaté a été intégré dans votre réponse.
poussins
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.