52 votes

Comment puis-je tuer un processus par son nom?

Parfois, je remarque que le processus Python se fige. Ensuite, je le tue via le Moniteur d'activité et tout va bien.

J'aimerais tuer ce processus dans le Terminal à la place. Cependant, chercher le PID semble un peu inutile car il n'y a qu'un seul processus portant le nom Python.

Est-il possible de tuer un processus par son nom unique ?

0 votes

Voir aussi cette question si vous essayez de le tuer par le nom de la fenêtre visible.

61voto

Matt Love Points 6295

Vous devriez pouvoir exécuter la commande sudo killall Python.

Vous devez exécuter en tant que root car Python appartient à root, pas à l'utilisateur.

2 votes

J'ai fait cela : Aucun processus correspondant vous appartenant n'a été trouvé

1 votes

Le processus Python n'appartient pas à votre utilisateur. Essayez en tant que root à la place: sudo killall Python.

1 votes

@HenningJ Sudo a fonctionné pour une raison quelconque. Je viens de voir que le processus ne m'appartient pas. J'ai pu tuer le processus sans sudo quand je l'ai tué en utilisant son PID. Pourquoi?

28voto

Roshan Mehta Points 351
sudo killall -s SIGINT "nom du processus"

Si vous ne pouvez pas être un sudo car il demandera un mot de passe et je sens que vous ne voulez pas ça dans un script. pkill vient à la rescousse :)

pkill -9 "nom du processus"

6voto

Jason Medeiros Points 2549

Vous pouvez arrêter les applications en utilisant l'application Monitor d'activité, étant la solution GUI. Ce serait un simple "forcer à quitter". Cependant, cela ne fonctionne pas toujours pour différentes raisons dans certaines situations!

La solution en ligne de commande mentionnée dans le commentaire ci-dessus offre beaucoup plus d'options pour l'utilisateur. sudo killall Python ou s'il s'agit d'un programme-processus en cours d'exécution sudo killall /Applications/Whatever.app force également le processus à quitter.

Vous pouvez également forcer un processus à quitter en utilisant son PID assigné. Dans le cas de l'application Monitor d'activité, ce serait kill 25794 ou kill -9 25794

entrer la description de l'image ici

Quelques détails supplémentaires:

Le programme kill dans Terminal force simplement la fermeture d'un programme, comme par télécommande. (Cela fonctionne même lorsque vous vous connectez en SSH à votre Mac depuis un endroit distant. Suivez la commande kill avec le numéro d'ID de processus (PID court) du programme que vous souhaitez terminer.

Sauf si vous utilisez également sudo, vous ne pouvez arrêter que les programmes que vous "possédez", c'est-à-dire ceux en cours d'exécution sous votre compte. (Le système d'exploitation lui-même - root - exécute toujours ses propres programmes, et il est techniquement possible que d'autres personnes, se connectant depuis la route, exécutent leurs propres programmes même pendant que vous utilisez le Mac!)

Le drapeau -9 est un "tueur non-capturable, non-ignorable". En d'autres termes, c'est un assassin de force industrielle qui n'accepte aucune supplique de la part du programme que vous êtes en train de tuer.

6voto

soxman Points 1899

Bien qu'il utilise le PID, je trouve que le suivant est assez efficace:

ps aux | grep "Nom de la chaîne ou du processus"

Cette ligne renvoie une multitude d'informations sur les processus correspondants, et vous pouvez tuer ou faire ce que vous voulez à partir de là.

5voto

kungfuice Points 75
pkill -f "nom du processus"

Basé sur https://stackoverflow.com/a/22334807/1243763

1 votes

Y a-t-il un pidof sur macOS? Et pourquoi ne pas utiliser pkill qui n'a pas le problème du processus supplémentaire?

0 votes

Je suis d'accord et j'ai manqué cela. J'avais le binaire pidof comme alias non standard de ps -e -o pid,args | grep -E "\b$1\b" | awk "{print \$1}" | tr '\n' ' '. Donc, pkill -f est plus logique.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X