EMZETT.
Login

Zombie-Prozess

Kurz: Ein Zombie-Prozess ist ein bereits beendeter Prozess, dessen Eintrag in der Prozesstabelle noch existiert, weil der Elternprozess sein Ergebnis noch nicht abgeholt hat.

Genauer: Wenn ein Prozess endet, bleibt sein Exit-Code zurück, bis der Elternprozess ihn mit wait() abfragt. Bis dahin steht der Eintrag als „Z” (defunct) in der Prozessliste. Er belegt kaum Speicher, aber eine Prozess-ID.

Im Detail

  • Erkennen: ps aux zeigt Status Z, in top die Zahl der Zombies.
  • Töten geht nicht: Ein Zombie ist schon tot. Behoben wird es, indem der Elternprozess wait() aufruft oder beendet wird.
  • Waise: Stirbt der Elternprozess zuerst, adoptiert init/systemd das Kind und räumt es auf.
  • Container: Läuft als Prozess 1 ein Programm, das nicht aufräumt, sammeln sich Zombies. Hilfsprogramme wie tini lösen das.
  • Gefahr: Sehr viele Zombies können die Prozess-IDs erschöpfen.

Siehe auch: Prozess-Scheduling