Re: Bash - Exit Status von Hintergrundjobs ermitteln

Thomas Moritz <[email protected]> Thu, 28 Jan 2010 19:52:12 +0100
Newsgroups gmane.linux.suse.programming
Organization -
Message-ID <[email protected]>
Am Donnerstag, 28. Januar 2010 18:32:57 schrieb Thomas Michalka:

Hallo Thomas,

> Ich möchte in einem Skript mehrere Hintergrundjobs nacheinander
>  starten, d.h. die Bash soll (zunächst) nicht warten, bis einer
>  fertig ist, sondern alle Jobs auf die Reise schicken und danach
>  gleich wieder weitere Anweisungen synchron ausführen. Weiter
>  unten im Skript soll dann jedoch auf die Rückkehr (die
>  Beendigung) aller Jobs gewartet werden, wobei die Rückgabewerte
>  aller Hintergrundjobs ermittelt werden sollen. So könnte das in
>  etwa aussehen:
> 
> # Alle Backups parallel laufen lassen
> for SRC_DIR in $SRC_DIR_LIST ; do
>     rsync <options> $SRC_DIR $DEST_DIR &
>     PID_LIST="$! "
> done

Ich wuerde einen Zaehler in die Schleife einbauen und die PID's in 
ein Array[Zaehlernummer] schreiben. So kannst Du die Auswertung in 
einer while-Schleife gezielt abrufen und dort warten, bis alle 
Prozesse beendet sind.
"PID_LIST" finde ich hier vom Handling her unuebersichtlich.

Das ist nur eine Idee, die _ich_ angehen wuerde.

MfG Th. Moritz

-- 
Solange der Nagellack nicht trocken ist,
ist eine Frau wehrlos…
                      (Burt Reynolds)