Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ wait(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ksh(1)

sh(1)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026