Bash wartet auf Hintergrundprozess
Dieses Tutorial zeigt, wie Sie in Bash auf den Hintergrundprozess warten.
Bash wartet auf Hintergrundprozess
Mit dem wait
-Befehl in Bash kann gewartet werden, bis alle Hintergrundprozesse abgeschlossen sind. Dieser Befehl wartet auf den Prozess und gibt den Exit-Status zurück.
Der Befehl wait
wirkt sich auf die aktuelle Shell-Ausführungsumgebung aus, weshalb er in Bash und andere Shells integriert ist.
Die Syntax für den wait
-Befehl lautet:
wait [Options] BackgroundProcessID
Wobei die BackgroundProcessID
-ID der Prozess oder Job ist. Der Befehl Warten
wartet, bis alle Prozesse und Unterprozesse für die angegebene ID abgeschlossen sind.
Ein einfaches Beispiel für einen Warten
-Befehl kann sein:
wait 1234
Der obige Befehl wartet auf den Hintergrundprozess 1234. Wir können auch mehrere Prozesse angeben, und dann wartet der Warten
-Befehl auf alle Hintergrundprozesse.
Lassen Sie uns nun einen Prozess im Hintergrundprozess ausführen:
rsync -a /mn/c/Users/Sheeraz &
Der obige Befehl führt einen Prozess im Hintergrund aus und gibt die Job- und Prozess-ID zurück. Siehe die Ausgabe:
[1] 37
Wobei die Job-ID 1
und die Prozess-ID 37
ist.
Um nun auf den Job zu warten, führen wir den folgenden Befehl aus:
wait %1
Wobei 1
die Job-ID war. Die Ausgabe für diesen Befehl ist:
[1]+ Exit 23 rsync -a /mn/c/Users/Sheeraz
Und um auf den Prozess zu warten, verwenden wir den folgenden Befehl:
wait 37
Der obige Befehl wartet auf den Abschluss des Hintergrundprozesses 37
. Meistens wird in den Bash-Skriptdateien der Befehl wait
verwendet, der die parallel ausgeführten Hintergrundprozesse hervorruft.
Hier ist ein Beispiel für die Skriptdatei:
#!/bin/bash
sleep 30 &
ProcessId=$!
echo "PID: $ProcessId"
wait $ProcessId
echo "Exit status: $?"
Das Ausführen dieses Skripts gibt die Prozess-ID und den Beendigungsstatus für den Hintergrundprozess aus. Siehe die Ausgabe:
PID: 50
Exit status: 0
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook