Sleep (Kommandozeilenbefehl)

sleep ist ein Kommandozeilenbefehl, welcher in Unix, unixoiden Betriebssystemen, Windows und FreeDOS[1] als Systemaufruf einen laufenden Prozess für eine festgelegte Zeitspanne pausiert.

Allgemeine Beispiele

[Bearbeiten | Quelltext bearbeiten]

Die sleep-Anweisung unterbricht den gegenwärtig laufenden Prozess für die festgelegte Anzahl von Sekunden (per Default), Minuten oder Stunden:

 sleep [Zeit]

mit einem ganzzahligen Wert für Zeit zur Angabe der Zeitperiode in Sekunden.[2]

Der aktuelle Prozess wartet 30 Sekunden:

 sleep 30

Oder sogar 5 Stunden:

 sleep 18000

Unix und unixoide Betriebssysteme

[Bearbeiten | Quelltext bearbeiten]

Warte 3 Stunden und spiele anschließend die Datei foo.mp3 ab:

 sleep 3h ; mplayer foo.mp3

Ausdrücke wie sleep 5h30m und sleep 5h 30m erzeugen Fehlermeldungen, da der sleep-Befehl einen Wert und (optional) eine Einheit als Argumente erwartet. GNU sleep verwendende Betriebssysteme (einschließlich Linux) stellen jedoch die Schreibweise sleep 5h 30m, mit zwingend notwendigem Leerzeichen zur Trennung von Stunden und Minuten, zur Verfügung.

Gleitkommazahlen bewahren vor unübersichtlichen Zeitangaben in reinen Sekunden.[3]

Warte 5,5 Stunden:

sleep 5.5h

Die Aneinanderreihung von sleep-Befehlen erfüllt denselben Zweck.

Pausiere 5 Stunden und anschließend weitere 30 Minuten:

 sleep 5h; sleep 30m

Begrüße den derzeit angemeldeten Benutzer (User, hier root), warte 5 Sekunden und verabschiede dich am Ende von ihm:

Sleep Command

Die PowerShell von Windows definiert den sleep-Befehl durch einen Alias für das Cmdlet Start-Sleep [4] und Microsoft stellt ein Resource Kit-Tool für sleep bereit. Innerhalb einer Batch-Datei oder mittels Windows Eingabeaufforderung unterbricht der Befehl die Ausführung des Programms für eine frei wählbare Zeit.[5]

Neuere Versionen von Windows unterstützen außerdem die Verwendung des timeout-Befehls.[6]

Anwendungsgebiete

[Bearbeiten | Quelltext bearbeiten]

Der Task Scheduler von Windows und Cron in UNIX nutzen den sleep-Befehl um Prozesse zu planen oder deren Ausführung zu verzögern.[7][8]

In einem geteilten Netzwerk begrenzt der sleep-Befehl die Anzahl an Usern, die eine große Datei (z. B. mit dem Unix-Befehl wget) herunterladen wollen.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Ibiblio: Package group Utilities. Abgerufen am 18. September 2018.
  2. die.net: sleep(3): sleep for specified number of seconds - Linux man page. Abgerufen am 18. September 2018.
  3. Gnu.org: GNU Coreutils: sleep invocation. Abgerufen am 18. September 2018.
  4. Microsoft: Start-Sleep. Abgerufen am 18. September 2018.
  5. Microsoft: Download Windows Server 2003 Resource Kit Tools from Official Microsoft Download Center. Abgerufen am 18. September 2018.
  6. Microsoft: Timeout Microsoft Docs. Abgerufen am 18. September 2018.
  7. GroovyPost: Schedule Windows to Sleep and Wake Automatically. Abgerufen am 18. September 2018.
  8. LazyDev: cron vs sleep which is better ? Abgerufen am 18. September 2018.