fork/exec Absturz abfangen

jccTeq

Erfahrenes Mitglied
Hallo,

wie zum Geier bekomme ich es hin, daß der Parent mitbekommt, wann und auf welche Weise eines seiner Childs abstürzt? Ich erstelle einen Child-Prozess per fork, ersetze diesen via execlp und möchte nun sofort und umgehend im Parent wissen, wann und mit welchem Fehler dieser Child abstürzt (also Segmentation Fault oder Floating Point Exception oder sowas). Da der Child aber nicht der einzige Child ist, muss der Parent nebenbei weiterlaufen und andere Aufgaben erledigen können, darf also nicht mit wait blockierend auf den Child warten. Ich komme an den Sourcecode der Childs nicht heran, kann nur Änderungen im Parent einbringen. Also wie macht man sowas?

Danke!

Gruß,
Hendrik
 
*Hm*
Leider hab ich mich bisher zuwenig mit UNIX Systemprogrammierung auseinandergesetzt um da großartig weiterhelfen zu können.
Ich bin mir auch nicht Sicher ob sowas überhaupt möglich ist.
Reicht es dir nicht, daß du weißt ob der Child-Prozess noch "lebt" oder nicht?
Also in der Regel kannst du schon Signals abfangen, aber ob das von anderen Prozessen möglich ist glaub ich nicht. (UNIX is ja kein Windows :-) ).
Hast du schon mal bei google gesucht?

Gruß Homer
 
Wie besengt, aber nichts gefunden, das mir weiterhelfen könnte. Ich müsste schon den Rückgabewert des Prozesses erhalten können oder das Signal, mit dem der Prozess beendet wurde, also auf irgendeine Art und Weise herausfinden, ob der Prozess natürlich beendet wurde, oder abgestürzt ist und wenn ja, warum. Bei meinem Programm handelt es sich grob gesagt um einen Firmware-Loader für ein Embedded-Linux-System basierend auf SuSE 9.0. Der Loader muss wissen, wie es um die geladenen Firmware-Programme steht und der Benutzer-Oberfläche, die diesen Loader steuert, mitteilen können, wenn einer der Prozesse seinen Geist aufgibt. Google konnte mir da bisher leider nicht helfen.
 
Hmm... tja... das ist dumm, weil dann muss ich die Prozesse ständig abpollen und das wollte ich vermeiden, wollte das eher im Interrupt-Betrieb machen, also daß der Parent ein Signal erhält, wenn sich der Child beendet. Naja, mal sehen, vielleicht komme ich ja doch irgendwie an die Sourcen der Child-Prozesse heran, sodaß ich da ein Signal-Handling drin unterbringen kann. Danke schonmal für die Links, ich werd's mir mal zu Gemüte führen. Wenn sonst noch jemand Ideen hat, wie man das lösen kann, immer her damit!

Danke!

Gruß, Hendrik
 
Zurück