Wartebefehl unter Linux

Wait Command Linux



Warten ist ein integrierter Befehl von Linux, der auf den Abschluss eines laufenden Prozesses wartet. Warten Befehl wird mit einer bestimmten Prozess-ID oder Job-ID verwendet. Wenn mehrere Prozesse in der Shell laufen, ist der aktuellen Shell nur die Prozess-ID des letzten Befehls bekannt. Wird der Wait-Befehl diesmal ausgeführt, wird er für den letzten Befehl angewendet. Wenn beim Befehl wait keine Prozess-ID oder Job-ID angegeben wird, wartet es, bis alle aktuellen untergeordneten Prozesse abgeschlossen sind, und gibt den Exit-Status zurück.

Der Exit-Statuswert des Wait-Befehls hängt von dem Befehl ab, der durch den zuletzt angegebenen Operanden angezeigt wird. Wenn ein Prozess abnormal beendet wird, ist der Exit-Status größer als 128 und muss sich von den Exit-Statuswerten anderer Befehle unterscheiden. Warten Der Befehl endet mit dem Wert 0, wenn er ohne Operanden aufruft und alle Prozess-IDs, die der aktuellen Shell bekannt sind, beendet wurden. Wenn der Wait-Befehl einen Fehler erkennt, gibt er einen beliebigen Wert von 1 bis 126 zurück. Wenn die letzte Prozess-ID unbekannt ist, wird der Wait-Befehl mit dem Wert 127 beendet. In diesem Tutorial wird gezeigt, wie Sie den Wait-Befehl unter Linux verwenden können.







Beispiel-1: Wait-Befehl für mehrere Prozesse verwenden

Nach der Ausführung des folgenden Skripts werden zwei Prozesse im Hintergrund ausgeführt und die Prozess-ID des ersten echo-Befehls wird in der Variablen $process_id gespeichert. Wenn der Wait-Befehl mit $process_id ausgeführt wird, wartet der nächste Befehl auf die Beendigung der Aufgabe des ersten echo-Befehls. Der zweite Wait-Befehl wird mit ‘ $! ’ und dies zeigt die Prozess-ID des letzten laufenden Prozesses an. ‘ $? ’ wird verwendet, um den Statuswert des Wartebefehls zu lesen.



#!/bin/bash
rauswerfen 'warte Befehl1 testen' &
Prozess ID=$!
rauswerfen 'warte Befehl2 testen' &
Warten $process_id
rauswerfenJob1mit Status verlassen$?
Warten $!
rauswerfenJob2mit Status verlassen$?

Ausgabe:



$bashwait1.sh





Beispiel-2: Wait-Befehl testen, nachdem der Kill-Befehl verwendet wurde

Im folgenden Skript wird nach dem Beenden des Prozesses der Wait-Befehl ausgeführt. Der sleep-Befehl wird als Hintergrundprozess ausgeführt und der kill-Befehl wird ausgeführt, um den laufenden Prozess zu beenden. Danach wird der Wait-Befehl mit der Prozess-ID des beendeten Prozesses ausgeführt. Die Ausgabe zeigt die Prozess-ID des beendeten Prozesses.

#!/bin/bash
rauswerfen 'Wartebefehl testen'
Schlaf zwanzig &
pid=$!
töten $pid
Warten $pid
rauswerfen $pidwurde beendet.

Ausgabe:



$bashwait2.sh

Beispiel-3: Überprüfen Sie den Exit-Statuswert

Im folgenden Skript wird die Funktion prüfen() wird von zwei Argumentwerten aufgerufen. Am Anfang des Tutorials wird besprochen, dass bei erfolgreicher Ausführung des Wait-Befehls der Exit-Wert 0 wird und wenn der Wait-Befehl einen Fehler erkennt, gibt er einen Wert zwischen 1 und 126 zurück. Nach dem Ausführen des Skripts, wenn Sie 0 als zweites Argument übergeben Der Befehl value then wait wird erfolgreich beendet, und wenn Sie einen Wert größer als Null übergeben, wird er erfolglos beendet.

#!/bin/bash
Funktionprüfen()
{
rauswerfen 'Schlaf für 1 Sekunde'
Schlaf $ 1
Ausfahrt $ 2
}
prüfen$ 1 $ 2 &
B=$!
rauswerfen 'Status prüfen'
Warten $ b && rauswerfenOK|| rauswerfenNICHT OK

Ausgabe:

$bashwait3.sh3 0
$bashwait3.sh3 5

Hoffe, dieses Tutorial wird Ihnen helfen, den Befehl wait richtig zu erlernen. In Linux gibt es einen weiteren Befehl namens Schlaf um eine bestimmte Anzahl von Zeiten zu warten, aber es gibt einige Unterschiede zwischen diesen Befehlen. Wenn Sie daran interessiert sind Schlafbefehl Dann können Sie diesen Link besuchen.