So warten Sie auf einen bestimmten Prozess unter Linux?

So warten Sie auf einen bestimmten Prozess unter Linux?

Wir haben eine Wartezeit von Linux, um auf einen oder mehr als ein Verfahren im System zu warten. Mit dem vielseitigen Befehl wait von Linux können wir herausfinden, wann ein bestimmter Vorgang abgeschlossen ist. Der Kündigungsstatus wird als Ergebnis zurückgegeben, sodass wir feststellen können, ob der Prozess erfolgreich endet oder aus einem anderen Grund fehlgeschlagen ist. Der Wait -Befehl wird weiterhin ausgeführt, da er darauf wartet, dass bestimmte Hintergrundaufgaben ausgeführt werden. Der Befehl Linux Wait wird in den unten stehenden Anwendungsfällen verwendet, um anzuzeigen, wie er funktioniert.

Beispiel Nr. 1: Verwenden Sie einen Wartenbefehl für den Bash -Einzelprozess.

Wir verwenden den Wait -Befehl, um anzugeben, wann der Hintergrundprozess eines Skripts mit der Verarbeitung beginnen muss. Im folgenden Bash -Skript haben wir den Befehl echo verwendet, der die Anweisung „Hintergrundprozess“ druckt, was bedeutet, dass der Hintergrundprozess verarbeitet wird. Mit diesem Echo -Befehl haben wir das Symbol „&“ verwendet, mit dem ein Befehl im Hintergrund ausgeführt wird. Dann haben wir erneut die beiden Echo -Befehle verwendet, die die Anweisung "erste Aufgabe" und "zweite Aufgabe" drucken,.

Danach haben wir die Wartezeit berufst. Die dritte Aufgabe wird nach Beendigung des Hintergrundprozesses bearbeitet, der jederzeit beendet wird.

#!/Bin/Bash
Echo Hintergrundprozess &
Echo erster Aufgabe
Echo zweite Aufgabe
Warten
Echo Dritte Aufgabe

Die Ausgabe des Wartungsbefehls wurde angezeigt, dass nach Abschluss der ersten Aufgabe und der zweiten Aufgabe die dritte Aufgabe verarbeitet wird. Der Wait -Befehl generiert die Anweisung „Hintergrundprozess“, wenn die ersten und zweiten Aufgaben Zeit in Anspruch nehmen, um abzuschließen.

Linux@virtualBox: ~ Bash ./Bash.Sch
Erste Aufgabe
Zweite Aufgabe
Hintergrundprozess
Dritte Aufgabe

Beispiel Nr. 2: Verwenden Sie einen Wartenbefehl für mehrere Prozesse.

Da das frühere Bash -Skript den Befehl Wait für den einzelnen Vorgang verwendet. Wenn der Wait -Befehl mit dem Flag -n verwendet wird, wartet er nur auf den ersten Vorgang unter den Hintergrundprozessen. Das Bash -Skript wird unten bereitgestellt, wo wir zuerst die drei Schlafbefehle mit bestimmten Werten bereitgestellt haben. Der Schlafbefehl ist mit dem Zeichen „&“ definiert, das wir bereits zuvor besprochen haben, was angibt, dass die Hintergrundprozesse ausgeführt werden.

Der erste Schlafbefehl zeigt an, dass der Hintergrundprozess „10“ Sekunden erforderlich ist, um abgeschlossen zu werden. Der Hintergrundprozess benötigt für die Fertigstellung „5“ Sekunden. Für die Ausführung des Hintergrundprozesse. Als nächstes wird der Befehl wait -n aufgerufen, der nur auf den kürzesten Prozess wartet. Hier dauert der kürzeste Prozess drei Sekunden, um unter den anderen Prozessen abzuschließen. Wenn der kürzeste Vorgang abgeschlossen ist, wird die Echo -Erklärung „den ersten Job abgeschlossen“ gedruckt.

Danach haben wir den Befehl wait -n erneut bereitgestellt. Dies wird wieder auf den weniger zeitaufwändigen Prozess warten. Jetzt dauert der weniger zeitaufwändige Prozess fünf Sekunden, da der Prozess der Zeit drei Sekunden ausgeführt wird. Nach fünf Sekunden des Prozesses gewartet, wird die nächste Echo -Erklärung „abgeschlossener Auftrag“ angezeigt. Der nächste Befehl von Wait verwendet kein Flag, was bedeutet, dass dieser Wartezeitbefehl darauf wartet, dass alle Prozesse zuerst abgeschlossen sind und dann die Echo -Anweisung "Alle Aufgaben abgeschlossen" angezeigt werden.

#!/Bin/Bash
Schlaf 10 &
Schlaf 5 &
Schlaf 3 &
warte -n
Echo “erledigte den ersten Job.”
warte -n
Echo „den nächsten Job abgeschlossen.”
Warten
Echo „alle Jobs abgeschlossen hat.”

Die Ergebnisse des Bash -Skripts mehrerer Prozesse mit dem obigen Wartungsbefehl werden auf dem folgenden Bash -Shell -Bildschirm angezeigt. Die Wartezeit mit der Option -n -Befehle pausieren für 3 und 5 Sekunden, was die Zeit für den ersten und nächsten Job benötigt, um die Wartungsbefehle zu beenden und dann zehn Sekunden lang in die Pause einzulegen. Dies ist die Zeit, die für den verbleibenden Hintergrund benötigt wird Prozesse zu beenden.

Linux@virtualBox: ~ Bash ./Bash.Sch
„Erster Job abgeschlossen.”
„Der nächste Job abgeschlossen.”
„Alle Aufgaben abgeschlossen.”

Beispiel Nr. 3: Verwenden Sie einen Wartenbefehl für die Bash mehrerer Prozesse mit der Prozess -ID.

Wenn wir uns mit mehreren Prozessen im Bash -Skript mit dem Wait -Befehl befassen, ist die Prozess -ID hilfreich, um den Prozess zu identifizieren. Hier im Bash -Skript haben wir den Befehl echo verwendet, um die Anweisung "Process1 3 Sekunden lang" zu drucken. Dann haben wir den und den Operator "&&" verwendet, um einen weiteren Befehl festzulegen, der den Sleep -Befehl ist. Der Sleep -Befehl nimmt einen Wert von „3“ an. Dann haben wir die Variable "processID" deklariert, die ein "$" lieferte!" Wert. Das Symbol „$!”Ruft die Prozess -ID des zuletzt ausgeführten Befehls ab. Der zuletzt ausgeführte Befehl, der 3 Sekunden dauert, wird in der Variablen „ProcessID“ gespeichert,.

Jetzt haben wir einen weiteren Befehl von Echo angegeben, der den „Prozess1 prozess1 für 5 Sekunden“ zusammen mit dem Sleep -Befehl druckt. Der Sleep -Befehl dauert fünf Sekunden für den Abschluss des zweiten Hintergrundvorgangs. Als nächstes haben wir die aktuelle Zeit mit der DateTime -Struktur der Bash gedruckt. Anschließend wird der Wait -Befehl verwendet, bei dem die Variable „processID“ als Argument festgelegt wird. Der Wait -Befehl hält nun die Wartezeit der prozessID -Variablen, die drei Sekunden beträgt.

Nach drei Sekunden wird der verbleibende Prozess des Bash -Skripts abgeschlossen sein. Beachten Sie, dass wir einen weiteren Wartenbefehl haben, der mit dem Zeichen „$ $“ übergeben wird!Als Argument wird die letzte Echo -Erklärung ausgeführt. Zum Abholen der letzten Laufbefehlsprozess -ID des Laufs.

#!/Bin/Bash
echo "prozess1 für 3 Sekunden" && Schlaf 3 &
ProcessID = $!
echo "prozess1 für 5 Sekunden" && Schlaf 5 &
echo "aktuelle Zeit $ (Datum +%t)"
Warten Sie $ processId
Echo "Prozess1 -Kündigungszeit $ (Datum +%t) mit dem Ausgangsstatus $ $?"
warte $!
Echo "Process2 -Kündigungszeit $ (Datum +%t) mit Exit -Status $?"

Die Ausgabe zeigte zunächst den Abschluss des Prozesses zusammen mit der Zeit für die Fertigstellung. Dann ist der aktuelle Zeitvorgang abgeschlossen. Danach ereignete sich das Warten und dann wurde der nächste Echo -Befehl ausgeführt, wodurch der Exit -Statuswert Null zusammen mit der Kündigungszeit angezeigt wurde. Der Wert der Wertnull -Exit stellt dar, dass der Prozess erfolgreich beendet wird. Andererseits erfolgt die Pause für die Zeit, in der der letzte Vorgang abgeschlossen ist, und die letzte Aussage wird angezeigt.

Linux@virtualBox: ~ Bash ./Bash.Sch
Prozess1 für 5 Sekunden
Prozess1 für 3 Sekunden
Aktuelle Zeit 00:31:20
Prozess1 Beendigung Zeit 00:31:23 mit Exit -Status 0
Process2 Kündigzeit 00:31:25 mit dem Ausgangsstatus 0

Abschluss

Der Artikel bietet eine Möglichkeit, auf einen bestimmten Prozess in Linux zu warten. Wir haben den Wait -Befehl verwendet, um auf den Laufprozess zu warten. Wir verwenden zuerst den Wait -Befehl, damit der einzelne Prozess wartet, und dann haben wir den Wait -Befehl für die mehreren Prozesse aufgerufen. Anschließend wird der Wait -Befehl über die Prozess -ID aufgerufen, um die Prozess -ID mehrerer Prozesse abzurufen.