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)