sleep je príkaz v Unixe, Unix-like a ďalších operačných systémoch, ktorý pozastaví („uspí“) vykonávanie procesu na určený čas. Používa sa typicky v skriptoch alebo sekvenciách príkazov, zadávaných z príkazového riadku.

sleep

sekvencia príkazov zahŕňajúca sleep
Základné informácie
Operačný systémUnix, Unix-like, V, Plan 9, Inferno, OS-9, MSX-DOS, FreeDOS, Windows, KolibriOS, IBM i
Typ softvérupríkaz
Licenciacoreutils: GPLv3+
FreeDOS: GPLv2
prvé vydanienovember 1973

Pozri aj Informačný portál

Popis upraviť

Proces, ktorý príkaz zavolá, zastaví svoje vykonanie minimálne na čas, zadaný ako parameter. Bez bližšej špecifikácie je čas interpretovaný ako počet sekúnd, je však možné zadať aj počet minút, hodín alebo dní.

sleep pre Unix-like systémy je súčasťou X/Open Portability Guide od 2. vydania z roku 1987. Prevzatý bol do prvých verzií POSIX a Single UNIX Specification.[1] Prvýkrát bol zahrnutý v Unix Version 4.[2]

Verziu sleep, ktorá je súčasťou GNU coreutils, napísali Jim Meyering a Paul Eggert.[3] Príkaz je tiež dostupný v shelli systému OS-9,[4] v KolibriOS Shell,[5] a súčasťou FreeDOS package group Utilities.[6] Verzia, ktorá je vo FreeDOS, je od Trane Francks a licenciovaná pod GPL.[7]

Príkaz sleep je tiež súčasťou ASCII MSX-DOS2 Tools pre MSX-DOS verzie 2.[8]

V PowerShell je sleep preddefinovaný ako alias na Start-Sleep cmdlet, ktorý slúži na rovnaký účel.[9] Microsoft tiež poskytuje sleep ako utilitu v balíku Resource Kit Tools pre Windows.[10] Inou natívnou verziou je príkaz timeout, ktorý je súčasťou aktuálnych vydaní Windows.[11]

Príkaz bol tiež portovaný do operačného systému IBM i pre IBM Power Systems.[12]

Použitie upraviť

 sleep N

kde N je nezáporné celé číslo,[13] udávajúce časový interval v sekundách. Niektoré implementácie povoľujú zadávať N ako desatinné číslo.

Príklady upraviť

 sleep 30 # počká 30 sekúnd
 sleep 18000 # počká päť hodín

GNU sleep upraviť

 sleep 3h ; mplayer foo.mp3 # počká 3 hodiny a prehrá foo.mp3

Volania sleep 5h30m a sleep 5h 30m nie sú správne, nakoľko sleep očakáva len jednu číselnú hodnotu a jeden typ. Napríklad sleep 5.5h (zadaný ako desatinné číslo)[14] je správny. Použiť sa dá aj nasledujúca sekvencia volaní:

 sleep 5h; sleep 30m # počká 5 hodín, a potom ďalších 30 minút

GNU implementácia sleep (súčasť coreutils; používaná napríklad v Linuxe) umožňuje zadať hodnotu ako desatinné číslo[14] alebo odovzdať viacero hodnôt, v tomto prípade teda bude fungovať aj vyššie uvedené sleep 5h 30m (hodiny a minúty je potrebné oddeliť medzerou).

Medzi možné využitia sleep patrí naplánovanie úloh, ktoré sa spustia neskôr. Napríklad na odloženie stiahnutia veľkého súboru na obdobie, kedy bude zdieľané pripojenie využívať menej používateľov.

Pozri aj upraviť

Referencie upraviť

  1. sleep – Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
  2. sleep(1) – FreeBSD General Commands Manual
  3. sleep(1): delay for specified amount of time - Linux man page [online]. . Dostupné online.
  4. Paul S. Dayan. The OS-9 Guru - 1 : The Facts. [s.l.] : Galactic Industrial Limited, 1992. ISBN 0-9519228-0-7.
  5. Shell - KolibriOS wiki [online]. . Dostupné online.
  6. ibiblio.org FreeDOS Group -- Utilities [online]. . Dostupné online.
  7. ibiblio.org FreeDOS Package -- sleep (Unix-like) [online]. . Dostupné online.
  8. MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル [online]. April 1, 1993. Dostupné online.
  9. Start-Sleep (Microsoft.PowerShell.Utility) - PowerShell [online]. . Dostupné online.
  10. Microsoft. Download Windows Server 2003 Resource Kit Tools from Official Microsoft Download Center [online]. microsoft.com, [cit. 2020-07-22]. Dostupné online. Archivované 2020-07-22 z originálu. (po anglicky)
  11. Timeout [online]. . Dostupné online.
  12. IBM. IBM System i Version 7.2 Programming Qshell [online]. . Dostupné online. (po anglicky)
  13. sleep(3): sleep for specified number of seconds - Linux man page [online]. . Dostupné online.
  14. a b GNU Coreutils: sleep invocation [online]. . Dostupné online.

Externé odkazy upraviť