La meilleure façon de tuer les processus d'état Zombie et D sous Linux

Réponses:

19

Tapez deux fois.

En fait, redémarrez. Il n'existe aucun moyen réel de se débarrasser facilement d'un zombie, mais il n'y a vraiment aucune raison de le faire, car un zombie n'utilise pas de ressources sur l'ordinateur; c'est une entrée orpheline dans une table de processus. Init est censé le récupérer mais quelque chose s'est mal passé avec le processus. http://en.wikipedia.org/wiki/Zombie_process

Peut-être que vous demandez parce qu'il y a un problème pire ... obtenez-vous une cargaison de zombies errant dans votre table de processus? Cela signifie généralement un bogue dans le programme ou un problème avec une configuration. Vous ne devriez pas avoir un grand nombre de zombies sur le système. Un ou deux je ne m'inquiète pas. Si vous en avez cinquante d'Apache ou d'un autre démon, vous avez probablement un problème. Mais ce n'est pas directement lié à votre question ...

Bart Silverstrim
la source
1
il y a environ 10 processus zombies
vnix27
Quels sont les processus?
Bart Silverstrim
15
/sbin/reboot

Vous ne pouvez pas tuer un zombie - il est déjà mort

Si le ppid existe toujours, la fin de l'opération peut souvent nettoyer les zombies engendrés.

Vous ne devriez pas tuer des processus en veille sans interruption - cela signifie généralement qu'ils sont liés aux E / S, mais IIRC cela peut également se produire lors d'une lecture bloquante, par exemple à partir d'une prise réseau.

symcbean
la source
10

Des erreurs dans le système de fichiers ou les disques sous-jacents peuvent entraîner des processus liés aux E / S. Dans ce cas, essayez de "démonter -f" le système de fichiers dont ils dépendent - cela annulera toutes les demandes d'E / S en attente ouvertes.

Arie Skliarouk
la source
2
Et perdez des données. Cela ne semble pas être une bonne idée.
Michael Hampton
5
Vous perdez quand même des données par redémarrage. De cette façon, vous pourriez éviter le redémarrage - fonctionnalité utile sur les systèmes de production ou de développement.
Arie Skliarouk
2
Merci, cela a fonctionné pour un problème que nous avions avec un script bloqué tentant d'accéder à un montage NFS disparu pendant des semaines :)
BT643
1
C'est exactement ce qui m'arrive parfois lorsque je fais la lscommande sur un montage s3fs. Le lsprocessus ne tuera pas même avec kill -9jusqu'à ce que je force le démontage avec umount -l. Alternatives à umount?
Marco Marsala
2
Maintenant, mon processus de démontage est suspendu en tant que zombie STAT "D +"!
Curtis Yallop