Parfois, je remarque que le processus a été Python
suspendu. Ensuite, je vais le tuer via le moniteur d'activité et tout va bien.
Je voudrais plutôt tuer ce processus dans le terminal. Cependant, la recherche PID
semble inutile car il n’ya qu’un seul processus Python
.
Est-il possible de tuer un processus par son nom unique?
No matching processes belonging to you were found
sudo killall Python
.sudo
quand je l'ai tué en utilisant c'estPID
. Pourquoi?sudo
.Si vous ne pouvez pas être un sudo car il vous demandera un mot de passe et je sens que vous ne le voulez pas dans un script. pkill viens au secours :)
la source
Vous pouvez tuer des applications en utilisant Activity Monitor.app, en tant que solution graphique. Ce serait une simple "force quitter". Cependant, cela ne fonctionne pas toujours pour différentes raisons dans certaines situations!
La solution de ligne de commande mentionnée dans le commentaire ci-dessus contient beaucoup plus d'options pour l'utilisateur.
sudo killall Python
ou s'il s'agit d'un processus de programme en cours, ilsudo killall /Applications/Whatever.app
oblige également le processus à quitter.Vous pouvez également forcer un processus à quitter, en utilisant son PID attribué . Dans le cas de Activity Monitor.app, ce serait
kill 25794
oukill -9 25794
Quelques détails supplémentaires:
Le programme kill de Terminal force simplement la fermeture d'un programme, comme par télécommande. (Cela fonctionne même lorsque vous utilisez SSH sur votre Mac depuis un emplacement distant. Suivez la commande kill avec le numéro d'identification du processus (PID court) du programme que vous souhaitez arrêter.
À moins que vous n'utilisiez également sudo, vous ne pouvez tuer que les programmes que vous «possédez» - ceux qui fonctionnent 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 lorsque vous utilisez un Mac!)
Le
-9
drapeau est une "tuer non capturable, non ignorable." En d'autres termes, c'est un assassin de force industrielle qui n'accepte aucune demande de clémence du programme que vous tuez.la source
Bien qu'il n'utilise PID, je trouve ce qui suit pour être assez efficace:
ps aux | grep "String or name of process"
Cette ligne renvoie une foule d'informations sur le (s) processus de correspondance, et vous pouvez à
kill
partir de là.la source
Basé sur https://stackoverflow.com/a/22334807/1243763
la source
pidof
binaire comme alias non standard deps -e -o pid,args | grep -E "\b$1\b" | awk "{print \$1}" | tr '\n' ' '
. Donc,pkill -f
cela a plus de sens.