Woher kommen die -Prozesse?
Symptom: Wenn ich mir mit ps meine Prozesse anzeigen lasse,
sind darunter Prozesse mit dem Namen <defunct>, die sich nicht beenden lassen.
Was kann man da machen?
Erklärung:
Prozesse mit dem Namen <defunct> sind sogenannte "Zombies". Das sind Prozesse,
die noch nicht gelöscht worden sind obwohl das zugehörige Programm schon beendet wurde.
Zombies entstehen, wenn ein Elternprozeß einen Kindprozeß erzeugt, über dessen Beendigung
er informiert werden möchte. Nach seiner Beendigung muß der Kindprozeß daher seine
Prozess-ID behalten, bis der Elternprozeß den Status über die Beendigung des
Kindprozesses abgerufen hat. Macht der Elternprozeß das aufgrund eines Programmfehlers
nicht, verbleibt der Kindprozeß im Zombie-Status.
Zombies sind nicht schädlich, da sie keine Ressourcen mehr verbrauchen (weder
Rechenzeit noch Speicherplatz). Man kann sie allerdings nicht mehr killen,
da sie ja bereits schon beendet sind. Typischerweise verschwinden sie von selbst,
wenn man den Elternprozeß beendet, was zum Beispiel nach dem Ausloggen passiert.
|