Joerg Rossdeutscher wrote:
Moin,
Am Di, den 30.12.2003 schrieb Gerald Goebel um 20:19:
Joerg Rossdeutscher wrote:
Ich habe mich auf das "-1" verlassen: "...if there is no such child process...", denn den gibt es zu dem Zeitpunkt ja gar nicht mehr. Es ist aber anscheinend so, daß trotzdem die ID zurückgereicht wird, was ich eigentlich bei einer Abfrage auf einen bereits verendeten Prozess komisch finde. There /is/ no such process. It died already! Damned.
Doch er existiert noch, er ist weder running, noch sleeping, sondern ein zombi.
Wie kommst du da drauf? Er wurde sauber mit "exit" beendet.
Mit dem exit kannst du ja auch noch was zurückgeben, z. B. 0 für richtig ausgeführt, oder -1 für Fehler. An wen soll das denn gehen? Soll es einfach verschwinden? Die shell funktioniert doch genauso, geforkt wir da mit der eingabe des befehls, das WNOHANG machst du mit '&'. Und jedes mal wenn du dir Enter-Taste drückt fragt er wieder ab ob irgend eines seiner Kinder sich beendet hat, wen ja zeigt sie es am Bildschirm an. Also nochmal: Prozesse, die von einem Prozess erzeugt wurden, sich beendet haben und die nicht erwartet werden, werden zu Zombies, und stehen damit noch immer zur Abholung in der Prozess-Tabelle bereit. Es spielt also keine Rolle, ob sauber beendet wurde oder nicht. Es besteht ja auch die Möglichkeit, das der Prozess auf mehreren Wegen mit exit beendet wird, zum Beispiel weil etwas falsch gelaufen ist, dann möchtest du doch unter umständen wissen, ist der Prozess ganz durchgelaufen, oder ist irgendwo ein Fehler aufgetreten, während dein Parentprozess zwischenzeitlich etwas ganz anderes gemacht hat. Für dich könnte das eine Rolle spielen, bei den fontlingen. Wielange muß der Prozeß immer wieder neu angeschmissen werden, er stürzt vieleicht 1mal ab, 16 mal 100 mal, bei 2000 Schriften 10.000 Schriften. Wie willst du das steuern? Mit ner Zufallszahl, Counter? Nach dem waitpid dir die pid des Childprozesses zurückgegeben hat, steht ser return/exitcode in '#?', dh. du untersuchst den exitcode und entscheidest dann, was weiter geschehen soll. hth cu Gerald