Heim  >  Artikel  >  System-Tutorial  >  5 Möglichkeiten im Zusammenhang mit dem Warten auf den Ruhezustand im Linux-System

5 Möglichkeiten im Zusammenhang mit dem Warten auf den Ruhezustand im Linux-System

王林
王林nach vorne
2024-02-12 21:03:161011Durchsuche

In Linux-Systemen wird der Ruhezustand normalerweise verwendet, um Strom zu sparen oder um auf den Abschluss bestimmter wichtiger Vorgänge zu warten. In tatsächlichen Anwendungen können jedoch verschiedene Situationen auftreten, in denen Sie unterschiedliche Schlafwartemethoden verwenden müssen. In diesem Artikel werden Ihnen fünf häufig verwendete Methoden zum Warten auf den Ruhezustand unter Linux vorgestellt, damit Sie diese Technik besser verstehen und beherrschen können.

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. Dem Wartebefehl wird mitgeteilt, dass er abgeschlossen ist, bis er abgeschlossen ist.

Schlafbefehl

Der Befehl

sleep pausiert für die angegebene Zeit. Es wird normalerweise in Skripten verwendet, funktioniert aber auch auf der Befehlszeile. 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

5 Möglichkeiten im Zusammenhang mit dem Warten auf den Ruhezustand im Linux-System
Der Befehl „sleep“ benötigt ein numerisches Argument als Anzahl der 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

5 Möglichkeiten im Zusammenhang mit dem Warten auf den Ruhezustand im Linux-System
Sie können Änderungen in der Speichernutzung beobachten.

[root@localhost ~]# while true ; do free -h ; sleep 5 ; done
5 Möglichkeiten im Zusammenhang mit dem Warten auf den Ruhezustand im Linux-System

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 diese Informationen an, wartet auf den Abschluss des Prozesses 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).

Kurz gesagt, es gibt viele Möglichkeiten, in Linux-Systemen zu schlafen und zu warten, und jede Methode hat ihre eigenen speziellen Anwendungsszenarien sowie Vor- und Nachteile. Nur wenn man ihre Grundprinzipien und Anwendungsbereiche richtig versteht, können sie besser genutzt werden. Ich glaube, dass Sie durch die Einleitung dieses Artikels ein tieferes Verständnis für das Warten auf den Linux-Ruhezustand erhalten.

Das obige ist der detaillierte Inhalt von5 Möglichkeiten im Zusammenhang mit dem Warten auf den Ruhezustand 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