web-dev-qa-db-fra.com

Le processus Zombie provoque-t-il une insuffisance de mémoire? Est-ce qu'il a finalement été tué par le processus init?

J'ai un problème de processus zombie et c'est la première fois que je le rencontre. Donc, je ne sais pas comment résoudre ce problème et ce concept. J'ai lu un article posé il y a 1 an ( lien ) et il a dit comme ci-dessous:

Il n’ya aucun mal à laisser de tels processus s’ils ne sont pas nombreux. Zombie est finalement récolté par son parent (en appelant wait (2)). Si le parent d'origine ne l'a pas récolté avant sa propre sortie, le processus init (pid == 1) le fait ultérieurement.

Mais à cela, je ne comprends pas et ai 2 questions. Plz aider sur quiconque le sait.

  1. Cela signifie-t-il que l'entrée du processus zombie sera éventuellement supprimée de la table des processus et supprimée avec succès par le processus init (Pid = 1) ??
  2. Je pense que le processus zombie cause un problème de pénurie de mémoire, car il ne restitue pas l'espace mémoire alloué.

Ai-je raison??

2
Kim Hyung-seok
  1. Les processus Zombie n’utilisent aucune ressource système. (En réalité, chacun utilise une très petite quantité de mémoire système pour stocker son descripteur de processus.) Cependant, chaque processus zombie conserve son identifiant de processus (PID).

  2. Les systèmes Linux ont un nombre fini d'identifiants de processus - 32767 par défaut sur les systèmes 32 bits. Si les zombies s'accumulent très rapidement (par exemple, si un logiciel serveur mal programmé crée des processus zombies sous charge), l'intégralité du pool de PID disponibles sera finalement affecté aux processus zombie, empêchant ainsi le lancement d'autres processus.

  3. Se débarrasser des processus zombies

    kill -s SIGCHLD pid
    

Le crédit va à: HTG

2
rɑːdʒɑ