GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wait-Befehl in Linux mit praktischen Beispielen erklärt

Der Wait-Befehl ist etwas, das mit Linux geliefert wird, sodass Sie ihn in allen Linux-Distributionen finden können. Bevor ein Prozess stoppt, wartet er auf seine Beendigung. Wenn Sie eine Prozess- oder Job-ID angeben, sollten Sie den Befehl wait verwenden. Einfach ausgedrückt warten Wartebefehle, die eine ID enthalten, weiter, bis der Prozess beendet ist und in den Beendigungsstatus zurückkehrt. Wenn Sie also auch den Wait-Befehl verwenden möchten, empfehlen wir Ihnen, diesen Artikel gründlich zu lesen.

Was ist der Wartebefehl?

Der Wait-Befehl in Linux erweist sich als ein wertvoller und einfacher Prozess, wenn es um die Verwaltung des Automatisierungs-Workflows geht. Darüber hinaus hilft es Ihnen, den Ablauf richtig einzurichten, damit die Automatisierung reibungslos verläuft. Beispielsweise müssen Sie mit dem Wait-Befehl sicherstellen, dass das aktuelle Modul die Ausführung beendet, bevor das nächste mit der Arbeit beginnen kann.

Dieser Befehl überwacht den vorherigen Prozess genau. Nach Abschluss des vorherigen Vorgangs wird ein Status an den Befehl gesendet. Wenn Sie also auf den Abschluss eines Prozesses mit der ID 25351 warten, sendet der Wartebefehl nach Abschluss einen Exit-Status. Sein Beendigungsstatus wird in seiner Antwortnachricht gefunden. Hier ist die allgemeine Syntax des Wartebefehls: 

wait [options] ID

ID(PID) –> Die Prozess-ID (auf PID warten) wartet, bis das Dienstprogramm beendet wird, wenn Sie diese Option wählen. Sie können die PID eines Prozesses mit dem folgenden Befehl finden: 

pidof <process name>

Zum Beispiel wollen wir die PID von Firefox finden, und dann führen wir den folgenden Befehl im Terminal aus:

Praktische Beispiele für Wartebefehle in Linux

- -

Nachfolgend finden Sie einige Beispiele für den Wait-Befehl, die Ihnen helfen, ihn besser zu verstehen. Wir haben verschiedene Szenarien verwendet und entsprechende Skripte erstellt, also werfen wir einen Blick darauf:

1. Wartebefehl mit mehreren Prozessen

Hier in diesem Beispiel werden wir die Funktionsweise des Wait-Befehls mit zahlreichen Prozessen ermitteln. Wir werden ein Skript entwerfen, in dem wir mit der Ausführung von zwei Befehlen fortfahren und dann auf deren Ausführung warten können. Wir haben ein Bash-Skript „ubuntupit.sh“ mit den folgenden Informationen erstellt: 

#! /bin /bash

echo "wait vlc" &

process_id=$!

echo "wait firefox" &

wait $process_id

echo process 1 ended as $?

echo process 2 ended as $?

Nachdem wir das obige Skript erstellt haben, haben wir den folgenden Befehl im Terminal ausgeführt:

bash ubuntupit.sh

Wir können den Wait-Befehl auch in den Shell-Skripten verwenden, die zum Spawnen des untergeordneten Prozesses verwendet werden. Hier ist also das einfache Skript: 

#! /bin /bash

vlc &

process_id=$!

echo "PID: $process_id"

wait $process_id

echo "Exit Details: $?"

Im obigen Befehl:

  • Die erste Zeile besteht aus shebang und die zweite Zeile enthält vlc &für die Verwendung des Wartebefehls. 
  • $! fungiert als interne Bash-Variable zum Speichern der PID des letzten Prozesses, der im Hintergrund läuft.
  • PID wird an den angegebenen wait-Befehl in der nächsten Zeile übergeben, der wartet, bis der vlc-Player geschlossen wird.
  • Am Ende gibt das System die Exit-Details des Wait-Befehls aus. 

Führen Sie nun dieses Skript im Terminal aus:

Wir können auch die Option -n im Skript verwenden, um ein anderes Ergebnis zu erhalten. Hier ist ein Skript „Ubuntupit2.sh“, das aus der Option -n besteht:

#! /bin /bash

vlc

firefox

wait -n

echo "First process ended"

wait

echo "All processes ended"

Die Option -n im obigen Skript verzögert das Drucken der Echo-Anweisung, bis der erste Prozess abgeschlossen ist. Der Wait-Befehl wartet, bis alle Hintergrundprozesse beendet sind.

2. Beenden Sie einen Prozess mit dem Wait-Befehl

In Bezug auf das zweite Beispiel zum Wait-Befehl führen wir ein Skript namens ubuntupit3.sh aus, um einen Prozess zu beenden, und führen dann den Wait-Befehl aus.

#! /bin/bash
echo "Kill a Process"
vlc &
process_id=$!
kill $process_id
wait $process_id
echo $process_id is ended successfully.

Sie erhalten die Ausgabe beim Ausführen des Skripts:

Hier sehen Sie, dass der Exit-Status anzeigt, ob der Prozess beendet wurde. Dieses Beispiel zeigt, wie der Exit-Status je nach Ergebnis des Prozesses unterschiedlich zurückgegeben wird.

3. Überprüfen des Ausgangsstatuswerts

In diesem Beispiel sehen Sie, dass die Funktion check() zwei Argumente benötigt; benennen wir unser Skript als ubuntupit4.sh. In diesem Skript verwenden wir den Befehl sleep, um das Beispiel zu demonstrieren. Wir definieren hier die folgende Funktion:

#! /bin/bash

function check()

{

echo "Execute sleep for $1 seconds"

sleep $1

exit $2

}

check $1 $2 &

b=$!

echo "System is checking the status of the process"

wait $b && echo Ended Successfully || echo Not Ended Successfully

In dieser Funktion spiegeln wir zunächst die Länge des ersten Prozesses wider. Wir verwenden dann die bestimmten Informationen, um zu schlafen und den Prozess zu beenden. Wir berücksichtigen die folgende Eingabe:

check $1 $2 &

b=$!

echo "System is checking the status of the process"

wait $b && echo Ended Successfully || echo Not Ended Successfully

Nachdem der Benutzer einen Wert eingegeben hat, wird der Wartebefehl verwendet, um den Status auszugeben. Hier haben wir 6,5 und 6,0 ​​als Beispiel verwendet:

Zu guter Letzt Einblicke

Der obige Artikel enthält alle Informationen über den Wartebefehl, seine Verwendung in Linux und die Arbeitsbeispiele. Sie haben gesehen, wie Sie es in Automatisierungsworkflows gut einsetzen können. Alles, was im Artikel erwähnt wird, liest sich angemessen, vom verwendeten Befehl bis zu seinen zusätzlichen Details, und verfehlt keinen Punkt.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux cut Befehl erklärt mit 6 Beispielen

  3. Befehl zum Herunterfahren von Linux mit Beispielen erklärt

  4. Linux Traceroute-Befehl, erklärt mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Tr-Befehl in Linux mit Beispielen erklärt

w Befehl mit Beispielen in Linux erklärt

12 praktische Beispiele für In Command unter Linux

Linux tee-Befehl erklärt (mit Beispielen)

Linux-lsof-Befehl erklärt mit 12 praktischen Beispielen

Linux csplit Befehl erklärt (mit Beispielen)