![](https://seccdn.libravatar.org/avatar/65f6637f0abadc8a2f09ebecb9ec8ffc.jpg?s=120&d=mm&r=g)
Hallo Manfred, Am 30.12.2023 um 11:00 schrieb Manfred Haertel, DB3HM:
Herbert Albert schrieb:
Es laufen ja per se nvidia Prozesse nur der Zombie wird anscheinend erst dann beim graphischen Login gestartet, wenn die Datei ".nvidia-settings-rc" im $HOME des Users liegt.
Jetzt muss ich mich doch mal einmischen.
Zombies werden nicht gestartet. :-)
Ein Zombie ist - wie der Name schon sagt - ein "untoter" Prozess, d.h. einer, der seine Arbeit bereits getan hat und sich eigentlich beenden möchte, aber seinen Exit-Code nicht los wird. Und das passiert deswegen, weil sich der Parent-Prozess nicht für den Exit-Code seines "Kindes" interessiert. Er muss dazu einen System-Call aus der wait()-Familie ausführen.
Das entstehen von Zombie-Prozessen ist also praktisch immer auf Programmierfehler zurück zu führen, aber nicht in dem Zombie-Prozess selbst, sondern genau im Parent-Prozess.
Ein Zombie-Prozess verbraucht auch kaum noch Resourcen (außer der PID :-) ). Er ist eher ein ästhetisches Problem als ein technisches.
Los werden kann man ihn eigentlich nur, indem man alle Parent-Prozesse (also Vater, Großvater usw.) tötet, so lange bis irgendein Prozess, der nunmehr zum Vater des Zombies geworden ist, wait()-Aufrufe macht. Irgendwann ist man beim init-Prozess angekommen, der macht regelmäßig wait() und der Zombie ist weg.
Man kann aber den Zombie auch ignorieren. Irgendwann wird der Programmierfehler sowieso behoben.
Sehr gute Erklärung. Mir ist das zwar bereits bekannt aber so gut formulieren hätte ich das nie können. Manfred