wait(1) wait(1)
NAME
wait - Auf die Beendigung von Hintergrundprozessen warten
SYNTAX
wait[ prozessnummer]
BESCHREIBUNG
Das in die Shell sh(1) bzw. ksh(1) eingebaute Kommando wait wartet,
- bis der vorher gestartete Hintergrundprozeß mit der angegebenen
Prozeßnummer (PID) beendet ist, oder
- bis alle vorher gestarteten Hintergrundprozesse beendet sind, wenn
Sie beim Aufruf keine Prozeßnummer angeben.
Im Dialog wartet die Shell standardmäßig nicht auf die Beendigung
eines vorher gestarteten Hintergrundkommandos, sondern gibt sofort das
Bereitzeichen aus. Bei Kommandos, die nicht im Hintergrund gestartet
werden, wartet die Shell immer auf das Ende der Ausführung.
Für Shell-Prozeduren gilt das gleiche. Wenn eine Shell-Prozedur ein
Kommando enthält, das die Ausgabe eines vorher im Hintergrund gestar-
teten Kommandos bearbeiten soll, können Sie mit wait sicherstellen,
daß dieses Hintergrundkommando rechtzeitig beendet ist.
Erhalten Sie beim Starten eines Hintergrundprozesses die Fehlermeldung
fork failed - too many processes
dann können Sie Ihr System durch den Gebrauch von wait entlasten. Wenn
Sie hierbei keinen Erfolg erzielen, ist die Systemprozeßtabelle voll
oder es sind zu viele Prozesse im Vordergrund aktiv.
Hinweis: Besteht eine Pipeline aus 3 oder mehr Teilen, so gruppiert
die Shell jeweils zwei Prozesse und ordnet diesen einen
Steuerprozeß zu. Diese beiden Prozesse sind damit keine
Sohnprozesse der Shell. Beachten Sie deshalb, daß wait auf
Prozesse, die keine Sohnprozesse der Shell sind, nicht war-
tet.
ARGUMENTE
prozessnummer
Nummer des Hintergrundprozesses, auf dessen Ende wait warten
soll.
In der Bourne-Shell können Sie nur eine Prozeßnummer angeben.
Wenn Sie mehrere Prozeßnummern angeben, gibt wait keine Fehler-
meldung aus, sondern wartet auf die Beendigung des Hintergrund-
prozesses, den Sie beim Aufruf als ersten angegeben haben.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
wait(1) wait(1)
Das Kommando wait gibt als Ende-Status den Ende-Status des Hin-
tergrundprozesses zurück. Haben Sie die Prozeßnummer eines
bereits beendeten Hintergrundprozesses angegeben, dann verhält
sich wait wie bei nicht angegebener Prozeßnummer (siehe
ENDE-STATUS).
Der Variablen ! (Ausrufezeichen) weist die Shell immer die Pro-
zeßnummer des zuletzt im Hintergrund gestarteten Kommandos zu.
Mit $! können Sie auf den Inhalt dieser Variablen zugreifen.
prozessnummer nicht angegeben:
wait wartet auf die Beendigung aller Hintergrundprozesse, die vor
dem Aufruf von wait gestartet wurden. In diesem Fall gibt wait
den Ende-Status 0 zurück.
ENDE-STATUS
Wenn Sie wait ohne Argument aufgerufen haben, ist der Ende-Status
immer gleich 0.
Wenn Sie wait mit einer Prozeßnummer aufrufen, gibt wait als Ende-
Status den Ende-Status des ausgewählten Hintergrundprozesses zurück.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
Beispiel 1
Die Shell soll auf den gestarteten Hintergrundprozeß warten:
$ find / -name tst -print 2>/dev/null &
3456
$ wait 3456
home/markus/PASCAL/tst
.
.
.
Beispiel 2
Die Shell-Prozedur warte zeigt, wie man auf das Ende eines bestimmten
Hintergrundkommandos warten kann. Diese Shell-Prozedur hat den folgen-
den Inhalt:
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
wait(1) wait(1)
: Aufruf mit sh warte
sort liste > sortiert &
pid1=$!
tar cvf /dev/dsk/f0t /home/anna &
pid2=$!
.
.
.
wait $pid1
pg sortiert
Die jeweiligen Prozeßnummern der Hintergrundkommandos werden in den
Variablen pid1 und pid2 gespeichert. So sind diese Prozeßnummern für
den späteren Gebrauch gesichert, da die Variable ! immer nur die Pro-
zeßnummer des zuletzt im Hintergrund gestarteten Kommandos enthält.
Das Kommando wait wartet auf das Ende des Kommandos sort. Erst dann
gibt pg den Inhalt der Datei sortiert aus.
HINWEISE
Bei der Verwendung von wait können sich Abweichungen im Verhalten
ergeben, je nachdem, welche Shell benutzt wird. Die möglichen Abwei-
chungen sind nicht eigens beschrieben.
SIEHE AUCH
ksh(1), sh(1).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98