Question Comment tuer tous les processus python sauf un de bash


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

J'ai besoin de genre de pkill -f "python" mais en excluant le script spécifique à Python.

S'il vous plaît donnez votre avis.


6
2017-08-16 08:34


origine




Réponses:


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

Mise à jour: explication pas à pas comme demandé dans les commentaires

  • ps aux |grep python - montre tous les processus qui correspondent python modèle
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - exclure le processus que vous ne voulez pas tuer
  • awk '{print $2}' - affiche le deuxième champ de sortie, il s’agit du PID.
  • xargs kill - appliquer kill commande à chaque entrée arg (PID).

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


5
2017-08-16 08:44



Génial, mais pouvez-vous expliquer comment cela fonctionne? Par exemple, qu'est-ce que awk '{print $ 2}' et xargs kill? - user370717
awk '{print $2}'  - imprime le deuxième champ de ps en sortie, dans le cas actuel c'est PID. xargs applique kill commande à chacun PID - user1700494
Il est bien de mettre cela dans un commentaire, mais je préférerais voter pour votre réponse après que ce commentaire bien formaté a été intégré à votre réponse. - chicks