mithras
15-11-2002, 22:44
bei einem proggi von mir wird bei jedem durchlauf einer bestimmten stelle ein neuer zombie erstellt, weil:
fork()
prozess a wird gestartet
.... und ausgeführt
prozess b wird gestartet
... und ausgeführt
im Prozess b, wird prozess a via Signal gekillt, dann wird per longjmp (ähnlich go to) wieder an die Stelle vor fork hingesprungen, sodass fork nochmal ausgeführt wird, nun wird ein zombie erzeugt, da sich ja quasi prozess b überlappt (prozess b war bereits vorhanden, es wird dennoch ein neuer erzeugt!)
Mit wait, oder waitpid, was mir bisher empfohlen wurde kreig ich das nicht auf die reihe.
hab nun schon versucht den zombie durch seine pid einfach zu killen (via signal) aber scheinbar wird der immer wieder neu erstellt, jedenfalls konnte ich ihn so auch nicht loswerden!?
fork()
prozess a wird gestartet
.... und ausgeführt
prozess b wird gestartet
... und ausgeführt
im Prozess b, wird prozess a via Signal gekillt, dann wird per longjmp (ähnlich go to) wieder an die Stelle vor fork hingesprungen, sodass fork nochmal ausgeführt wird, nun wird ein zombie erzeugt, da sich ja quasi prozess b überlappt (prozess b war bereits vorhanden, es wird dennoch ein neuer erzeugt!)
Mit wait, oder waitpid, was mir bisher empfohlen wurde kreig ich das nicht auf die reihe.
hab nun schon versucht den zombie durch seine pid einfach zu killen (via signal) aber scheinbar wird der immer wieder neu erstellt, jedenfalls konnte ich ihn so auch nicht loswerden!?