[Flug] Forks / Kindproz. beenden

Bernhard R. Link brl at mail.brlink.eu
Do Sep 6 16:48:25 CEST 2012


* Arno Steffens <epsi at gmx.de> [120906 15:53]:
> Wie kann der Elternprozess einen Kindprozess beenden - Kindstötung
> scheint nicht vorgesehen? Das fängt damit an, dass der Elternprozess
> die erzeugte PID gar nicht mitbekommt. Soweit ich sehe kann die nur
> per shared Memory übertragen werden - oder hab ich was übersehen?

Den Rückgabewert von fork? Der ist nämlich die pid des Kindprozesses.

> Auch andersrum, wie kann man aus einem Kindprozess den Elterprozess,
> alle Kinder einschliesslich sich selbst sauber beenden?

Das ist schwieriger und geht eigentlich nur unter bestimmten umständen
(wenn der Elternprozess entweder selber seine Kinder aufräumt, oder
mit irgendwelchen Tricks mit Prozessgruppen).

> Ich sehe immer nur beschrieben, wie der Elternproz. auf das Ende vom Kind wartet
> (wait). Kann nicht auch das Kind sich beenden, wenn seine Eltern hin sind?

Nicht so einfach. Wenn der Process Group Leader stirbt, kommt ein
SIGHUP, aber ansonsten kümmern sich Eltern um die Kinder und nicht
andersherum...

> Neben dem theoretischen Verständnis ist da Ziel, in einem IRQ handler,
> der in einem Kindprozess gestartet wird CTRL-C abzufangen und alles sauber zu beenden.
> Oder kann/muß ich jedem Thread einen eigenen IRQ-handler dafür spendieren?

Meinst du Signal-Handler? IRQ's sollten mit CTRL-C normalerweise nicht
so viel zu tun haben.

        Bernhard R. Link



Mehr Informationen über die Mailingliste Flug