Heim  >  Artikel  >  System-Tutorial  >  So verwenden Sie die Sleep- und Wait-Befehle im Linux-System

So verwenden Sie die Sleep- und Wait-Befehle im Linux-System

王林
王林nach vorne
2024-02-13 09:30:14792Durchsuche

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.

Schlafbefehl

Der Befehl

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
Der Befehl Linux 系统中 Sleep 和 Wait 命令的使用方式

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:

  • 10s = 10 Sekunden
  • 1m = 1 Minute
  • 2h = 2 Stunden
  • 3d = 3 Tage
[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 ..

vor der Zahl hinzu
  • .1 = eine Zehntelsekunde
  • .01 = eine Hundertstelsekunde
  • .001 = Tausendstelsekunde
[root@localhost ~]# date ; sleep .1 ; date
Thu Nov 11 05:14:03 EST 2021
Thu Nov 11 05:14:03 EST 2021
Der Befehl

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
Linux 系统中 Sleep 和 Wait 命令的使用方式

Sie können Veränderungen in der Speichernutzung beobachten.

[root@localhost ~]# while true ; do free -h ; sleep 5 ; done
Linux 系统中 Sleep 和 Wait 命令的使用方式

Warten Sie den Befehl

Der Befehl

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen