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 auxzeigt StatusZ, intopdie 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/systemddas Kind und räumt es auf. - Container: Läuft als Prozess 1 ein Programm, das nicht aufräumt, sammeln sich Zombies. Hilfsprogramme wie
tinilösen das. - Gefahr: Sehr viele Zombies können die Prozess-IDs erschöpfen.
Siehe auch: Prozess-Scheduling