Developer(s)AT&T Bell Laboratories, Microsoft, Microware, Trane Francks
Initial releaseNovember 1973; 50 years ago (1973-11)
Written inC
Operating systemUnix, Unix-like, V, Plan 9, Inferno, OS-9, MSX-DOS, FreeDOS, Windows, KolibriOS, IBM i
Licensecoreutils: GPLv3+
FreeDOS: GPLv2
Plan 9: MIT License

In computing, sleep is a command in Unix, Unix-like and other operating systems that suspends program execution for a specified time.


The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days.

sleep for Unix-like systems is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX and the Single Unix Specification.[1] It first appeared in Version 4 Unix.[2]

The version of sleep bundled in GNU coreutils was written by Jim Meyering and Paul Eggert.[3] The command is also available in the OS-9 shell,[4] in the KolibriOS Shell,[5] and part of the FreeDOS Package group Utilities.[6] The FreeDOS version was developed by Trane Francks and is licensed under the GPL.[7]

A sleep command is also part of ASCII's MSX-DOS2 Tools for MSX-DOS version 2.[8]

In PowerShell, sleep is a predefined command alias for the Start-Sleep cmdlet which serves the same purpose.[9] Microsoft also provides a sleep resource kit tool for Windows which can be used in batch files or the command prompt to pause the execution and wait for some time.[10] Another native version is the timeout command which is part of current versions of Windows.[11]

The command is available as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.[12] The sleep command has also been ported to the IBM i operating system.[13]


 sleep number

Where number is an integer[14] number to indicate the time period in seconds. Some implementations support floating point numbers.




 sleep 30

Causes the current terminal session to wait 30 seconds.

 sleep 18000

Causes the current terminal session to wait 5 hours

GNU sleep

 sleep 3h ; mplayer foo.mp3

Wait 3 hours then play the file foo.mp3

Note that sleep 5h30m and sleep 5h 30m are illegal since sleep takes only one value and unit as argument. However, sleep 5.5h (a floating point[15]) is allowed. Consecutive executions of sleep can also be used.

 sleep 5h; sleep 30m

Sleep 5 hours, then sleep another 30 minutes.

The GNU Project's implementation of sleep (part of coreutils) allows the user to pass an arbitrary floating point[15] or multiple arguments, therefore sleep 5h 30m (a space separating hours and minutes is needed) will work on any system which uses GNU sleep, including Linux.

Possible uses for sleep include scheduling tasks and delaying execution to allow a process to start, or waiting until a shared network connection most likely has few users to wget a large file.

See also


  1. ^ sleep – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  2. ^ sleep(1) – FreeBSD General Commands Manual
  3. ^ "sleep(1): delay for specified amount of time - Linux man page".
  4. ^ Paul S. Dayan (1992). The OS-9 Guru - 1 : The Facts. Galactic Industrial Limited. ISBN 0-9519228-0-7.
  5. ^ "Shell - KolibriOS wiki".
  6. ^ " FreeDOS Group -- Utilities".
  7. ^ " FreeDOS Package -- sleep (Unix-like)".
  8. ^ "MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル". April 1, 1993 – via Internet Archive.
  9. ^ "Start-Sleep (Microsoft.PowerShell.Utility) - PowerShell".
  10. ^ "Download Windows Server 2003 Resource Kit Tools from Official Microsoft Download Center". Microsoft. Archived from the original on 2019-06-11. Retrieved 2018-08-10.
  11. ^ "Timeout".
  12. ^ "Native Win32 ports of some GNU utilities".
  13. ^ IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM. Retrieved 2020-09-05.
  14. ^ "sleep(3): sleep for specified number of seconds - Linux man page". Retrieved 19 April 2018.
  15. ^ a b "GNU Coreutils: sleep invocation". Retrieved 19 April 2018.