Linux-Befehle

Wartebefehl unter Linux

Wartebefehl unter Linux
warten ist ein eingebauter 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 nur die Prozess-ID des letzten Befehls von der aktuellen Shell bekannt. Wird der Wait-Befehl diesmal ausgeführt, dann wird er für den letzten Befehl angewendet applied. Wenn beim Wait-Befehl 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 angegeben 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 wird mit dem Wert 0 beendet, 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. Wie Sie den Wait-Befehl in Linux verwenden können, wird in diesem Tutorial gezeigt.

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

Nach der Ausführung des folgenden Skripts laufen zwei Prozesse im Hintergrund und die Prozess-ID des ersten echo-Befehls wird in der Variablen $process_id gespeichert stored. 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 Wartebefehl wird mit '$!' und dies zeigt die Prozess-ID des letzten laufenden Prozesses an. '$?' wird verwendet, um den Statuswert des Wartebefehls zu lesen.

#!/bin/bash
echo "warte Befehl1 testen" &
process_id=$!
echo "warte Befehl2 testen" &
warte $process_id
echo Job 1 mit Status $ . beendet?
warte $!
echo Job 2 mit Status $ . beendet?

Ausgabe:

$ bash warten1.Sch

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
echo "Wartebefehl testen"
Schlaf 20 &
pid=$!
töte $pid
warte $pid
echo $pid wurde beendet.

Ausgabe:

$ bash warte2.Sch

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, wird ein Wert zwischen 1 und 126 zurückgegeben. Wenn Sie nach dem Ausführen des Skripts 0 als zweiten Argumentwert übergeben, wird der Befehl wait erfolgreich beendet, und wenn Sie einen Wert größer als Null übergeben, wird er erfolglos beendet.

#!/bin/bash
Funktionsprüfung()

echo "Schlaf für 1 Sekunden"
Schlaf 1
Beenden $ 2

Scheck 1 $ 2 &
b=$!
echo "Status prüfen"
warte $b && echo OK || Echo NICHT OK

Ausgabe:

$ bash warte3.sch 3 0
$ bash warte3.sch 3 5

Hoffe, dieses Tutorial wird helfen, den Befehl Wait richtig zu lernen. In Linux gibt es einen weiteren Befehl namens schlafen um eine bestimmte Anzahl von Zeiten zu warten, aber es gibt einige Unterschiede zwischen diesen Befehlen. Wenn Sie mehr über den Schlafbefehl wissen möchten, können Sie diesen Link besuchen.

Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...
Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...