Bash Wait Command unter Linux

Bash Wait Command unter Linux
Das Warten ist ein Linux -Befehl, der einen Exit -Status zurückgibt, nachdem er auf einen vollständigen Laufprozess gewartet hat. Wenn mehrere Prozesse gleichzeitig ausgeführt werden, kann der Wait -Befehl nur den letzten im Auge behalten. Wenn der Befehl wait nicht mit einer Job- oder Prozess -ID zugeordnet ist, wartet er, bis alle untergeordneten Prozesse abgeschlossen sind, bevor ein Exit -Status zurückgegeben wird. Der Befehl bash wait wird häufig mit dem Befehl prozess ids oder Job -IDs verwendet.

In diesem Tutorial werden wir den Befehl Bash Wait in Linux untersuchen.

Syntax:

Die allgemeine Syntax des Wartezeitbefehls unter Linux lautet:

Warten Sie [Option] ID

ID wäre eine Prozess -ID oder eine Job -ID.

Erklären Sie den Befehl Bash Wait in Linux:

Erstellen Sie zunächst eine Datei mit dem Befehl touch:

$ touch bashwait.Sch

Lassen Sie diese Datei mit dem Befehl unten ausführen:

$ chmod +x Dateiname

Sobald die ausführbaren Berechtigungen der Datei gewährt werden, öffnen Sie die Datei und schreiben Sie ein Skript in Bash -Datei:

#!/Bin/Bash
Schlaf 3 &
processID = $!
Echo "PID: $ processId"
Warten Sie $ processId
Echo "Beendenstatus: $?"

$! ist eine Variable in Bash, die die PID des letzten Prozesses speichert.

Führen Sie nun das Skript wie folgt aus:

$ ./Dateinamen
$ ./Bashwait.Sch

Prozess -ID und existierender Status wird in der Shell angezeigt.

Verwenden Sie die Option -n:

Mit der Option -n wartet der Wait -Befehl nur auf einen einzelnen Job von der bereitgestellten Prozess -ID oder den Auftragspezifikationen, die vor dem Rückgabericht des Exit -Status abgeschlossen sind. Warten Sie -N wartet, bis ein Hintergrundjob beendet ist, und gibt den Status "Job Exiting" zurück, wenn keine Argumente bereitgestellt werden.

Schreiben Sie die folgenden Zeilen in Ihr Skript:

#!/Bin/Bash
Schlaf 30 &
Schlaf 8 &
Schlaf 7 &
warte -n
Echo "Der erste Job wurde abgeschlossen."
Warten
Echo "Alle Jobs wurden abgeschlossen."

Führen Sie das Skript erneut aus und wenn der erste Job abgeschlossen ist.

Verwenden Sie die Option -f:

Die Option -F wartet auf jede Prozess -ID oder den Job, um vor der Rückgabe des Exit -Codes zu stoppen. Die Jobkontrolle ist standardmäßig nur für Ansprechanforderungen verfügbar.

Befehl terminal und rennen:

Warten Sie auf Prozess 3944.

Öffnen Sie ein anderes Terminalfenster und führen Sie den Befehl Kill aus, um den Prozess zu beenden.

Der Status wird geändert. Der Wait -Befehl erfolgt und gibt den Prozess der Prozess -Exit -Code zurück.

Wiederholen Sie die oben gegebenen Schritte mit dem Befehl -f.

Skript mit Wartezeitbefehl:

Wir verwenden 'Hallo.Sh 'und' Bash.sh 'Skripte zur Demonstration. Das 'Hallo.SH 'Skript druckt Zahlen von 1 bis 5 und' Bash.sh 'Skript ruft Hallo zusammen.sh und leitet es im Hintergrund, habe die Hell.sh und wartete darauf, dass es endet.

Erstellen Sie zwei Skripte mit dem Namen Hello und Bash:

Fügen Sie die untergegebenen Zeilen im Hallo hinzu.SH -Datei:

#!/Bin/Bash
für i in 1 2 3 4 5 6 7 8 9 10
Tun
Echo „Hallo.sh - Schleifennummer $ i.”
Erledigt

Fügen Sie die folgenden Zeilen im Bash-Skript hinzu:

#!/Bin/Bash
Echo “begann zu bash.Sch"
echo “fing Hallo an.Sch"
./Hallo.Sch &
process_id = $!
Warten Sie $ process_id
echo „Hella fertiggestellt.Sch

Ausgang:

Abschluss:

Wenn ein Benutzer einen Prozess stoppen möchte, veröffentlicht das System alle Ressourcen, die vom Prozess aufbewahrt werden. Wir müssen den Prozess benachrichtigen, den die Ausführung neu starten kann, sobald die anderen Prozesse abgeschlossen sind. Der Wait -Befehl in bash wartet, um die Ausführung abzuschließen, und gibt den Exit -Status zurück, wenn die Prozessausführung abgeschlossen ist. In diesem Handbuch haben wir einige Beispiele des Bash -Wait -Befehls in Linux gesehen.