[Flug] Fwd: Re: Forks / Kindproz. beenden

walter harms wharms at bfs.de
Do Sep 6 19:23:59 CEST 2012







Am 06.09.2012 15:53, schrieb Arno Steffens:
> Hallo Flugis,
> hab länger über forks gelesen aber eine Sache nicht gefunden.
> 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?
> 


kill(pid,9); -> tot


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

Es schickt ein hungup an den elternprozess
kill(getppid(),1); -> elternprocess geht los und killt alle verbindungen
ggfs. auch kill(0,1) wenn die prozesse zu einer Prozessgruppe gehoeren

> 
> Ein Kindprozess bekommt die seines Elternthreads ja immerhin mit getppid raus...
> 
> 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?
Ein child schickt immer ein SIGCHLD wenn es verschwindet (child mit _exit(0) beenden!)
Ein Elternprocess schickt ein SIGKILL an alle childs wenn er verschwindet
> 
> 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?
> 
Thread != Process
aber da es moeglich ist ein signal spezifisch einen thread zu schicken, ist es moeglich das
solcher einen eigenen sighandler hat. wahrscheinlich haben aber alle den des aufrufenden
programms.

Was exakt passiert liegt an den parametern die clone(2) bekommen (siehe CLONE_SIGHAND)

berichte ruhig ueber deine erfahrungen wir koenne auch ein paar neue demoprogramme
auf der webseite gebrauchen

re,
 wh


> Gruß
> Arno
> 
> _______________________________________________
> Freiburger Linux User Group
> Mail an die Liste: Flug at lug-freiburg.de
> Mailingliste verwalten (u.a. abbestellen): http://lug-freiburg.de/mailman/listinfo/flug
> 



Mehr Informationen über die Mailingliste Flug