Comment tuer un processus zombie sur un Mac

13

Comment tuer un processus zombie ou trouver son processus parent sur un Mac en utilisant le terminal?

eFrane
la source
3
@soandos Pas un doublon, car ce sujet ne concerne pas les zombies. Aucun des killsignaux ne fonctionne pour les zombies IIRC. Je l'ai déjà fait auparavant.
Daniel Beck
Habituellement, on peut tuer des zombies si le processus parent est connu mais cela nécessite de le tuer aussi, ce qui n'est pas toujours un choix agréable. Je me demande donc s'il y a une autre solution à cela.
eFrane

Réponses:

16

Hack Saw dit:

Malheureusement , il semble que tuer des zombies consiste à tuer le parent , et si le parent est / sbin / launchd, vous ne pouvez le tuer qu'avec un redémarrage.

Ce serait une très mauvaise idée de tuer launchd, mais vous pouvez le dire à HUP.

Essayer sudo kill -s HUP 1

Cela entraînera la launchdréinitialisation sans redémarrer. Cela a fonctionné pour moi dans le passé (wrt. Suppression des entrées de zombies).

sean
la source
3

Malheureusement , il semble que tuer des zombies consiste à tuer le parent , et si le parent est / sbin / launchd, vous ne pouvez le tuer qu'avec un redémarrage.

J'obtiens des zombies en utilisant Xcode et en arrêtant le simulateur, et il remet les zombies à mon propre / sbin / launchd personnel, qui n'a pas disparu lorsque je me suis déconnecté.

ps -xo pid, ppid, stat, command vous montrera vos processus, avec leur ID parent dans la deuxième colonne.

Hack Saw
la source
1

les processus zombies sont déjà morts et ne peuvent pas être tués. Ils doivent être supprimés de la table de processus automatiquement lorsque le processus parent meurt.

Ils ne ralentissent pas votre machine et vous pouvez les laisser là (ce ne sont que des entrées dans la table de processus).

Il y a un nombre maximum de processus (vous pouvez le vérifier avec sysctl kern.maxproc) et les processus zombies le réduiront (car ils sont comptés).

Si vous atteignez cette limite, vous ne pourrez pas créer de nouveaux processus et vous serez obligé de redémarrer.

Matteo
la source
"Devrait être supprimé", mais ce n'est pas toujours le cas. Xcode est horrible de quitter les processus zombies, et ils ne sont pas nettoyés même si Xcode meurt / est quitté / est tué.
JRG-Developer
@ JRG-Developer Je suis d'accord mais ce n'est pas un problème. Ils ne consomment aucune ressource.
Matteo
2
En fait, ils sont un problème lorsque trop de fichiers sont créés et que fork ne peut pas lancer de nouveau processus et que vous êtes obligé de redémarrer.
Adam
2
Ils constituent un problème lorsque vous souhaitez redémarrer le processus en panne et le réutiliser, mais ne le pouvez pas sans redémarrer.
MarcusJ
4
Lorsqu'une application se trouve dans cet état, vous ne pouvez pas la relancer tant que l'ancienne entrée n'est pas effacée. Il n'utilise aucune ressource, mais la pollution de la table empêche le lancement d'une nouvelle instance, vous êtes donc bloqué jusqu'au redémarrage.
George