Wartebefehl in Linux

Wartebefehl in Linux
Warten ist ein integrierter Befehl von Linux, der auf den Abschluss eines laufenden Vorgangs wartet. Warten Der Befehl wird mit einer bestimmten Prozess -ID oder einer Job -ID verwendet. Wenn mehrere Prozesse in der Shell ausgeführt werden, wird nur die Prozess -ID des letzten Befehls durch die aktuelle Shell bekannt sein. Wenn diesmal Wait -Befehl ausgeführt wird, wird er für den letzten Befehl angewendet. Wenn keine Prozess -ID oder eine Job -ID mit dem Befehl Wartezeit angegeben wird.

Der Befehl exit Statuswert des Wartens hängt vom Befehl ab, den der letzte angegebene Operand angegeben hat. Wenn ein Prozess ungewöhnlich endet, liegt der Exit -Status größer als 128 und unterscheidet sich von den Exit -Statuswerten anderer Befehle. Warten Der Befehl beendet mit dem Wert 0, wenn er ohne Operanden aufgerufen wird und alle Prozess -IDs bekannt sind, dass die aktuelle Shell beendet wurde. Wenn Wait -Befehl einen Fehler erkennt, gibt er einen Wert von 1 bis 126 zurück. Wenn die letzte Prozess -ID unbekannt ist, beendet Wait -Befehl mit Wert 127. Wie Sie Wait -Befehl in Linux verwenden können, wird in diesem Tutorial angezeigt.

Beispiel-1: Verwenden Sie den Befehl Warteur für mehrere Prozesse

Nach dem Ausführen des folgenden Skripts werden zwei Prozesse im Hintergrund ausgeführt und die Prozess -ID des ersten Echo -Befehls wird in $ process_id Variable gespeichert. Wenn Wait -Befehl mit $ process_id ausgeführt wird, wartet der nächste Befehl auf die Aufgabe des ersten Echo -Befehls. Der zweite Wartenbefehl wird mit 'verwendet$!'Und dies zeigt die Prozess -ID des letzten laufenden Prozesses an. ''$?'wird verwendet, um den Befehl Statuswert des Wartens zu lesen.

#!/Bin/Bash
Echo "Testing Wait Command1" &
process_id = $!
Echo "Testing Wait Command2" &
Warten Sie $ process_id
Echo Job 1 mit Status $ verlassen?
warte $!
Echo Job 2 mit Status $ verlassen?

Ausgang:

$ Bash Wait1.Sch

Beispiel-2: Testwartbefehl nach der Verwendung von Kill-Befehl

Im folgenden Skript wird der Befehl Wait ausgeführt, nachdem der Prozess beendet wurde. Der Sleep -Befehl wird als Hintergrundprozess ausgeführt und der Befehl Kill wird ausgeführt, um den laufenden Prozess zu beenden. Nach diesem Wartenbefehl wird mit der Prozess -ID des beendeten Prozesss ausgeführt. Die Ausgabe zeigt die Prozess -ID des beendeten Prozesses an.

#!/Bin/Bash
Echo "Testing Wait Command"
Schlaf 20 &
pid = $!
Töte $ pid
Warten Sie $ pid
Echo $ pid wurde gekündigt.

Ausgang:

$ bash wait2.Sch

Beispiel-3: Überprüfen Sie den Status des Exit-Status

Im folgenden Skript die Funktion überprüfen() wird durch zwei Argumentwerte bezeichnet. Es wird in der Start des Tutorials besprochen, dass der Befehl zum erfolgreich ausgeführten Wartungsbefehl 0 0 wird und wenn der Befehl Wait einen Fehler erkennt, wird er einen beliebigen Wert zwischen 1 und 126 zurückgibt. Wenn Sie das Skript ausgeführt haben, endet der Befehl warten, wenn Sie 0 als zweiten Argumentwert übergeben, und wenn Sie einen Wert mehr als Null übergeben, endet es erfolglos.

#!/Bin/Bash
Funktionsprüfung()

Echo "schlafen für 1 Sekunden"
Schlaf $ 1
$ 2 beenden

Überprüfen Sie $ 1 $ 2 &
B = $!
echo "den Status überprüfen"
Warten Sie $ b && echo ok || Echo nicht ok

Ausgang:

$ bash wartung3.Sh 3 0
$ bash wartung3.Sh 3 5

Hoffe, dieses Tutorial hilft dabei, den Befehl nutzungswart richtig zu lernen. Es gibt einen weiteren Befehl in Linux, benannt schlafen Warten Sie auf bestimmte Menge, aber es gibt einige Unterschiede zwischen diesen Befehlen. Wenn Sie interessiert sind, über den Sleep -Befehl zu wissen, können Sie diesen Link besuchen.