web-dev-qa-db-fra.com

Comment tuer tous les processus avec le même nom en utilisant OS X Terminal

Obtenir la sortie suivante en exécutant ceci:

ps aux | grep Python

Sortie:

user_name  84487   0.0  0.0        0      0   ??  Z    12:15PM   0:00.00 (Python)
user_name  84535   0.0  0.0        0      0   ??  Z    12:16PM   0:00.00 (Python)

Je veux mettre fin à tous les processus Python en cours d'exécution sur une machine ....

36
alphanumeric

utilisez pkill , avec le -f option.

pkill -f python

Si vous n'avez pas pkill pré-installé (certains OSX ne le font pas ...), essayez proctools .

70
shx2

Si vous n'avez pas pkill, vous pouvez essayer ceci:

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

Si cela vous donne les PID que vous souhaitez tuer, joignez-le à la commande kill comme celle-ci

kill $(ps aux | grep python | grep -v grep | awk '{print $2}')

Cela dit ... tuez tous les PID qui résultent de la commande entre parenthèses.

25
Mark Setchell
killall python

Fera l'affaire.

8
Bill

@ shx2: Merci pour l'astuce! Voici les étapes pour le faire fonctionner:

Étape 1:

cd /usr/bin

Étape 2:

touch "pkill"

Étape 3: Avec textEditor de votre choix, ouvrez le fichier que vous venez de créer:/usr/bin/pkill (faites-le avec Sudo ou soyez Admin). Copiez/collez ceci et enregistrez:

for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
  kill $X;
done

Étape3: définir l'attribut de fichier

Sudo chmod 755 /usr/bin/pkill

Vous êtes maintenant prêt à terminer tout processus à l'aide d'une syntaxe simple:

Par exemple, pour terminer tous les processus Python, ouvrez un shell et tapez:

pkill Python

Tous les processus python devraient maintenant avoir disparu.

3
alphanumeric