PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere "parallel" arbeitende PERL-Prozesse



TB09
29-03-2010, 15:22
Hallo,

ich habe nach wie vor das Problem, dass ich mehrere Prozesse starten möchte, der Parent-Prozess aber nicht warten soll, bis der Child-Prozess beendet ist. Das Parent-Programm, soll jedoch über eine Abfrage erfahren können, ob der Child-Prozess bereits beendet ist.

Hintergrund: Ein Programm startet mehrere Simulation, die ein Output-file erzeugen. Sobald die zahlreichen Einzelsimulationen beendet sind, sollen die Output-files gelesen und ausgewertet werden.

Ich habe mir bereits einiges an Theorie zu Gemüte geführt, schaffe es in der Praxis aber nicht das Ganze umzusetzen.

Kann mir hier bitte jemand an einem Beispiel zeigen, wie ich z.B. in einem Parent-Script mehrere Child-Prozesse starte (z.B. Child-Prozesse die nur "sleep(100)" als Code beinhalten) und wie deren Status abgefragt werden kann?!

Weiß mir momentan keinen Rat mehr! Vielen, vielen Dank,

Thomas

unux
29-03-2010, 17:02
Hi,

mach dich mal mit fork() (http://perldoc.perl.org/functions/fork.html) vertraut.

Bzgl. der Benachrichtigung solltest du dir mal Signale (http://gd.tuwien.ac.at/languages/perl/Hajji-Perlkurs/part2/sig.html) bzw. Signal-Handler genauer ansehen. Ein Handler für SIGCHLD sollte dir die gewünschte Funktionalität bringen.

Greetz

reneeb
30-03-2010, 11:17
Vielleicht hilft das hier weiter: http://wiki.perl-community.de/Wissensbasis/AllgemeinesFork