92 votes

Ubuntu affiche "There is 1 zombie process" à la connexion

Ce message apparaît lorsque je me connecte à ma machine :

There is 1 zombie process.
  • Qu'est-ce qu'il me dit ?
  • Est-ce que c'est quelque chose dont je devrais m'inquiéter ?
  • Si oui, alors que dois-je faire, et comment ?

67voto

Marc-Andre R. Points 2089

Il n'y a pas de quoi s'inquiéter :

Zombie

Sur les systèmes d'exploitation Unix, un processus zombie ou un processus défunt est un processus qui a terminé son exécution mais qui a toujours une entrée dans la table des processus, ce qui permet au processus qui l'a lancé de lire son état de statut de sortie. Dans la métaphore imagée de ce terme, le processus enfant est mort. mais n'a pas encore été récolté.

Lorsqu'un processus se termine, toute la mémoire et les ressources associées à ce processus sont supprimées. sont désallouées afin de pouvoir être utilisées par d'autres processus. Cependant, l'entrée du processus dans la table des processus est conservée. Le parent reçoit un signal SIGCHLD pour indiquer qu'un enfant est mort ; le gestionnaire de ce signal signal exécutera typiquement l'appel système wait, qui lit le statut de sortie et état de sortie et supprime le zombie. L'ID et l'entrée du processus du zombie dans la table des processus peuvent alors être réutilisés. Cependant, si un parent ignore le SIGCHLD, le zombie sera laissé dans la table des processus. Dans certains situations, cela peut être souhaitable, par exemple si le parent crée un autre processus un autre processus enfant, cela garantit qu'il ne se verra pas attribuer le même même ID de processus.

Source : http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process

58voto

guizo Points 401

J'ai pu mettre fin au processus de zombie en suivant ce tutoriel - https://vitux.com/how-to-kill-zombie-processes-in-ubuntu-18-04/ .

En gros :

1) Identifier le processus zombie :

ps axo stat,ppid,pid,comm | grep -w defunct

2) Tuer le processus parent :

sudo kill -9 <parent_process_number>

Ex : enter image description here

9voto

fioghual Points 101

Comme expliqué dans la réponse acceptée, vous avez un processus qui a terminé son exécution mais qui est toujours dans la table des processus : https://serverfault.com/a/390216/48449

Cela ne devrait pas causer de dommages s'il ne s'agit que d'un seul processus, mais cela ne devrait quand même pas arriver. S'il y en a trop et que vous ne redémarrez pas le processus parent qui les produit, vous risquez d'atteindre le nombre maximal de processus autorisés et de provoquer de graves problèmes.

Pour savoir si le souci est approprié et à quel autre processus le zombie appartient, ceci fonctionne pour moi :

ps -elf --forest | grep -C5 '<[d]efunct>'

Augmentez le nombre de lignes de contexte si nécessaire pour découvrir le processus parent, idéalement en corrigeant ce processus pour qu'il "récolte" ses sous-processus terminés.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X