web-dev-qa-db-fra.com

Pourquoi les processus zombies sont-ils créés au démarrage?

Ubuntu 13.04.

Récemment, des zombies ont commencé à apparaître.

Mes processus sont:

PROCESS       CPU         INFORMATION          

chrome            65%     Surf the web
calculator        10%     Calculate operations
<zombieunknown>    0%     <unknown>
<deadprocess>      0%     <defunct>

Alors, comment viennent-ils? Cela a été enregistré au démarrage, alors que Chrome et la calculatrice étaient en cours d'exécution.

Merci d'avance.

2
horIzoN

Dans le monde UNIX, les développeurs utilisent parfois le terme pour désigner un processus de programme qui est mort mais n'a pas encore rendu son entrée de table de processus au système.

Lorsqu'un processus termine son exécution, il aura un état de sortie à signaler à son processus parent. En raison de ces dernières informations, le processus restera dans la table de processus du système d'exploitation en tant que processus zombie, indiquant qu'il ne doit pas être planifié pour une exécution ultérieure, mais qu'il ne peut pas être complètement supprimé (et son ID de processus ne peut pas être réutilisé) jusqu'à ce qu'il soit déterminé que l'état de sortie n'est plus nécessaire.

Lorsqu'un enfant se termine, le processus parent recevra un signal SIGCHLD pour indiquer que l'un de ses enfants a terminé son exécution; le processus parent appellera généralement l'appel système wait () à ce stade. Cet appel fournira au parent l'état de sortie de l'enfant et entraînera la récupération ou la suppression de l'enfant de la table de processus.

L'idée derrière le maintien d'un processus zombie est de conserver les structures de données appropriées sur la fin du processus au cas où le parent s'intéresse jamais via une attente.

Vous ne pouvez pas tuer des zombies, car ils sont déjà morts. Mais si vous avez trop de zombies, tuez le processus parent ou redémarrez le service.

Vous pouvez tuer le processus zombie en utilisant PID obtenu à partir de l'une des commandes ci-dessus.

kill -9 <PID_Number>

Source: Mel Kham

1
Mitch