123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- .\"-
- .\" Copyright (c) 1990, 1993, 1994
- .\" The Regents of the University of California. All rights reserved.
- .\"
- .\" This code is derived from software contributed to Berkeley by
- .\" the Institute of Electrical and Electronics Engineers, Inc.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\" 3. Neither the name of the University nor the names of its contributors
- .\" may be used to endorse or promote products derived from this software
- .\" without specific prior written permission.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .\"
- .Dd March 22, 2024
- .Dt SLEEP 1
- .Os
- .Sh NAME
- .Nm sleep
- .Nd suspend execution for an interval of time
- .Sh SYNOPSIS
- .Nm
- .Ar number Ns Op Ar unit
- .Op ...
- .Sh DESCRIPTION
- The
- .Nm
- command suspends execution for a minimum of
- .Ar number
- seconds (the default, or unit
- .Li s ) ,
- minutes (unit
- .Li m ) ,
- hours (unit
- .Li h ) ,
- or days (unit
- .Li d ) .
- Intervals can be written in any form allowed by
- .Xr strtod 3 .
- If multiple intervals are given, they are added together.
- If the final sum is zero or negative,
- .Nm
- exits immediately.
- .Pp
- If the
- .Nm
- command receives a signal, it takes the standard action.
- When the
- .Dv SIGINFO
- signal is received, the estimate of the amount of seconds left to
- sleep is printed on the standard output.
- .Sh IMPLEMENTATION NOTES
- The
- .Dv SIGALRM
- signal is not handled specially by this implementation.
- .Sh EXIT STATUS
- .Ex -std
- .Sh EXAMPLES
- To run a command after half an hour:
- .Pp
- .Dl (sleep 0.5h; sh command_file >out 2>err)&
- .Pp
- This incantation would wait half an hour before
- running the script
- .Pa command_file .
- See the
- .Xr at 1
- utility for another way to do this.
- .Pp
- To reiteratively run a command:
- .Pp
- .Bd -literal -offset indent -compact
- while :; do
- if ! [ -r zzz.rawdata ] ; then
- sleep 5m
- else
- for i in *.rawdata ; do
- sleep 70
- awk -f collapse_data "$i"
- done >results
- break
- fi
- done
- .Ed
- .Pp
- The scenario for a script such as this might be: a program currently
- running is taking longer than expected to process a series of
- files, and it would be nice to have
- another program start processing the files created by the first
- program as soon as it is finished (when
- .Pa zzz.rawdata
- is created).
- The script checks every five minutes for the file
- .Pa zzz.rawdata ,
- when the file is found, then another portion processing
- is done courteously by sleeping for 70 seconds in between each
- .Xr awk 1
- job.
- .Sh SEE ALSO
- .Xr nanosleep 2 ,
- .Xr sleep 3
- .Sh STANDARDS
- The
- .Nm
- command is expected to be
- .St -p1003.2
- compatible.
- .Pp
- Support for non-integer intervals, units other than seconds, and
- multiple intervals which are added together are non-portable
- extensions first introduced in GNU sh-utils 2.0a (released in 2002).
- .Sh HISTORY
- A
- .Nm
- command appeared in
- .At v4 .
|