Philipp Hasenfratz: fork, reaper, Zombie-Prozesse und setsid

Beitrag lesen

Halihallo Martin

Und wenn mir der Vater durch irgendetwas stirbt, habe ich einen Zombie? *lach* das macht mein Provider sicher nicht lange mit...

Hä? - Mag sein, dass ich hier zuwenig informiert bin, aber IMHO interessiert sich
höchstens der Parent für seine Children. Prozessinformationen des Child werden aufbe-
wahrt, sodass der Parent Exist- und andere Stati auslesen kann, obwohl sie schon tot
sind. Um Zombies zu verhindern, gibt's das "reaping children", der Parent wartet auf
das determinieren der Children, sodass diese von der Prozesstable entfernt werden können.

Da habe ich mit meinem Forked-LWPs lange genug getüftelt, daß die sich dann selbst killen, wenn die Pipe mit dem daddy ins Leere geht. Aber so wie Du das schreibst SOLL der Sohn ja autark leben. Wie soll er dann den Zustand des Vaters (damit es keine Zombies gibt) überwachen?

Mir ist jedoch schleierhaft, warum dies auch nach setsid von Nöten sein müsste, da der
Prozess aus der Session fällt und eine neue Session bildet. Parent und Child haben hier
IMHO gar keine Bedeutung mehr (der Parent vergisst sein eigenes Child sozusagen).

---

Nun, warum schreibst du dir keinen Reaper oder setzt einfach $SIG{CHLD} auf "IGNORE"?
Bei SIGCHLD auf IGNORE, wird dem System mitgeteilt, dass Childstati gar nicht
interessieren und der Prozess sogleich aus der Prozesstable entfernt werden kann.

---

Ich wäre sehr froh, wenn mich hier ein Wissender korrigieren könnte oder sagen würde,
dass ich richtig liege, denn ich _weiss es nicht (genau)_.

Viele Grüsse

Philipp

--
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.