Mit den Befehlen „sleep“ und „wait“ in Linux können Sie Befehle mit einer ausgewählten Geschwindigkeit ausführen oder den Beendigungsstatus einer Aufgabe erfassen und anzeigen, nachdem Sie auf deren Abschluss gewartet haben. Sleep fügt einfach eine zeitgesteuerte Pause zwischen den Befehlen ein, während der Wait-Befehl Sie darüber informiert, dass der Befehl erledigt ist, bis er erledigt ist.
sleep pausiert für die angegebene Zeit. Es wird normalerweise in Skripten verwendet, kann aber auch über die Befehlszeile verwendet werden. Im folgenden Beispiel wird der Ruhezustand zwischen zwei Datumsbefehlen für 30 Sekunden unterbrochen.
[root@localhost ~]# date ; sleep 30 ; date Thu Nov 11 05:06:44 EST 2021 Thu Nov 11 05:07:14 EST 2021
sleep akzeptiert ein numerisches Argument als Sekunden. Sie können den Ruhezustand aber auch zu unterschiedlichen Zeiten einstellen, indem Sie im Parameter ein Zeichen hinzufügen:
[root@localhost ~]# date ; sleep 10s ; date Thu Nov 11 05:11:09 EST 2021 Thu Nov 11 05:11:19 EST 2021
Die Einschlafzeit kann auch weniger als 1 Sekunde betragen, fügen Sie einfach ein .
.
[root@localhost ~]# date ; sleep .1 ; date Thu Nov 11 05:14:03 EST 2021 Thu Nov 11 05:14:03 EST 2021
sleep wird normalerweise verwendet, um einen Befehl regelmäßig auszuführen, z. B. alle 10 Sekunden oder jede Minute, wenn Sie eine Aktivität überwachen möchten. Beispielsweise könnten Sie darauf warten, dass sich ein Kollege bei einem Dateiserver anmeldet. Sie könnten einen Befehl wie diesen ausführen:
[root@localhost ~]# while true ; do who ; sleep 100 ; done
Sie können Veränderungen in der Speichernutzung beobachten.
[root@localhost ~]# while true ; do free -h ; sleep 5 ; done
wait erfasst den Beendigungsstatus des Hintergrundprozesses, nachdem er auf den Abschluss des Hintergrundprozesses gewartet hat. Sie können es auch in Skripten verwenden. Ersetzen Sie den Sleep-Befehl durch den Prozess, auf den Sie warten möchten. Dieses Skript zeigt auch den Exit-Status an.
#!/bin/bash sleep 5 & process_id=$! echo “PID: $process_id” wait $process_id echo “Exit status: $?”
Die erste Zeile startet den Sleep-Befehl im Hintergrund. Die zweite Zeile erhält die Prozess-ID des zuletzt ausgeführten Hintergrundprozesses$!
. Das Skript zeigt dann die Meldung an, wartet auf den Abschluss des Vorgangs und zeigt den Exit-Status an.
Wenn Sie wait -n verwenden (keine zusätzlichen Parameter erforderlich), wartet wait, bis alle Hintergrundaufgaben abgeschlossen sind. Im folgenden Beispiel wird der Befehl „sleep 6“ zuerst ausgeführt und das Skript beendet, die anderen beiden Sleep-Prozesse werden jedoch einige Sekunden lang im Hintergrund weiter ausgeführt.
#!/bin/bash sleep 15 & sleep 9 & sleep 6 & wait -n echo “First job has been completed.”
Wenn Sie es in das folgende Skript ändern, werden Sie darüber informiert, wann jeder Schlafvorgang abgeschlossen ist. Aus zeitlichen Gründen geschieht dies in umgekehrter Reihenfolge zu Beginn des Schlafvorgangs.
#!/bin/bash sleep 15 & sleep 9 & sleep 6 & wait -n echo “First job has been completed.” wait -n echo “Next job has been completed.” wait echo “All jobs have been completed.”
Hinweis: Der Warteprozess muss ein „untergeordneter Prozess“ sein (ein Prozess, der in der aktuellen Shell gestartet wird).
Zusammenfassung
Beide können in Skripten oder in der Befehlszeile verwendet werden. Der Wartebefehl funktioniert jedoch nur bei Prozessen, die im Hintergrund ausgeführt werden.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Sleep- und Wait-Befehle im Linux-System. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!