45 votes

Comment tuer un processus qui ne veut pas mourir ?

Je ne parviens pas à tuer un processus en utilisant l'une des techniques que je connais ("Force Quit" dans Activity Monitor, top , killall à partir du terminal) et je me demande si je peux prendre des mesures supplémentaires.

enter image description here

~ $ sudo killall -KILL 77439
Password:
No matching processes were found
~ $ killall -KILL 77439
No matching processes belonging to you were found
~ $ killall 77439
No matching processes belonging to you were found
~ $ killall Mathematica
No matching processes belonging to you were found

Pour information, le processus est "Mathematica" que je ne peux pas relancer, quitter, forcer à quitter ou échantillonner, que ce soit par son nom ou son PID, et il semble avoir des effets secondaires étranges (les captures d'écran n'apparaissent pas, je ne peux pas vider la corbeille et je ne peux même pas arrêter le système).

Y a-t-il des mesures supplémentaires qui peuvent être prises pour vraiment vraiment tuer un processus qui se comporte mal ?

63voto

nohillside Points 82672

killall tue par le nom du processus (qui est définitivement pas 77439 et très probablement pas Mathematica). Vous pouvez utiliser kill 77439 ou (si cela échoue) kill -9 77439 à la place (mais si le processus est vraiment bloqué, seul un redémarrage résoudra le problème).

En outre, en raison de la façon dont l'envoi/le traitement des signaux (comme kill -9 ) fonctionne dans Unix/OS X, il y a des situations où un processus sera impossible à tuer. Un exemple typique est celui d'un processus qui reste bloqué lors de l'accès à un périphérique externe et qui ne récupère jamais le contrôle. Dans de telles situations, un redémarrage est le seul moyen de se débarrasser du processus.

5voto

Ady Points 4132

Parfois, tuer le processus parental peut permettre de se débarrasser d'un processus autrement impossible à tuer. Malheureusement, si le processus parental est PID 0 ou 1 (launchd), vous êtes dans la merde.

Trouvez le processus parental dans le moniteur d'activité.

3voto

Oskar Points 1242

Sur les OS plus récents, utilisez launchctl pour déclencher un redémarrage des applications / de l'espace utilisateur.

launchctl reboot apps
launchctl reboot logout
sudo launchctl reboot userspace

Je commencerais par les applications après avoir sauvegardé votre travail, puis je progresserais vers une déconnexion et enfin le redémarrage de l'espace utilisateur. Vous ne devriez pas avoir besoin de redémarrer l'ensemble du système d'exploitation à moins que les choses ne soient vraiment cassées au-delà d'un processus bloqué. Arrêtez-vous dès que la première des commandes ci-dessus vous soulage.

Vous pouvez trouver un iPad ou un iPhone ou un autre ordinateur pour ssh Cela permet de quitter plus facilement les choses puisque si vous exécutez l'application terminal, elle se terminera après la première commande.

-4voto

Isaac Points 4557

Sous MacOS Mojave 10.14 Beta 1, j'ai dû exécuter ce qui suit pour obtenir de la traction :

sudo xcscontrol --reset

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