178 lines
5.0 KiB
Groff
178 lines
5.0 KiB
Groff
.\" $NetBSD: sleep.1,v 1.27 2019/01/27 17:42:53 wiz Exp $
|
|
.\"
|
|
.\" 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.
|
|
.\"
|
|
.\" @(#)sleep.1 8.3 (Berkeley) 4/18/94
|
|
.\"
|
|
.Dd January 26, 2019
|
|
.Dt SLEEP 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm sleep
|
|
.Nd suspend execution for an interval of time
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Ar seconds
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
utility suspends execution for a minimum of
|
|
.Ar seconds
|
|
seconds, then exits.
|
|
It is usually used to schedule the execution of other commands (see
|
|
.Sx EXAMPLES
|
|
below).
|
|
.Pp
|
|
Note: The
|
|
.Nx
|
|
.Nm
|
|
command will accept and honor a non-integer number of specified seconds.
|
|
Note however, that if the request is for much more than 2.5 hours,
|
|
any fractional seconds will be ignored.
|
|
Permitting non-integral delays is a non-portable extension,
|
|
and its use will decrease the probability that
|
|
a shell script will execute properly on another system.
|
|
.Pp
|
|
When the
|
|
.Dv SIGINFO
|
|
signal is received, an estimate of the number of seconds remaining to
|
|
sleep is printed on the standard output.
|
|
.Sh EXIT STATUS
|
|
The
|
|
.Nm
|
|
utility exits with one of the following values:
|
|
.Bl -tag -width flag
|
|
.It Li \&0
|
|
On successful completion, or if the signal
|
|
.Dv SIGALRM
|
|
was received.
|
|
.It Li \&>\&0
|
|
An error occurred.
|
|
.El
|
|
.Sh EXAMPLES
|
|
To schedule the execution of a command for 1800 seconds later:
|
|
.Pp
|
|
.Dl (sleep 1800; sh command_file >errors 2>&1)&
|
|
.Pp
|
|
This incantation would wait half an hour before
|
|
running the script
|
|
.Dq command_file .
|
|
(See the
|
|
.Xr at 1
|
|
utility.)
|
|
.Pp
|
|
To repeatedly run a command (using
|
|
.Xr csh 1 ) :
|
|
.Pp
|
|
.Bd -literal -offset indent -compact
|
|
while (1)
|
|
if (! -r zzz.rawdata) then
|
|
sleep 300
|
|
else
|
|
foreach i (*.rawdata)
|
|
sleep 70
|
|
awk -f collapse_data $i >> results
|
|
end
|
|
break
|
|
endif
|
|
end
|
|
.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 zzz.rawdata is created).
|
|
The script checks every five minutes for the file zzz.rawdata.
|
|
When the file is found, processing the generated files (*.rawdata)
|
|
is done courteously by sleeping for 70 seconds in between each
|
|
awk job.
|
|
.Pp
|
|
To wait until a particular time, the following,
|
|
with some error checking added, might be used (using
|
|
.Xr sh 1
|
|
on
|
|
.Nx ) :
|
|
.Bd -literal -offset indent
|
|
END=$(( $( date -d "$1" +%s ) - START_TIME ))
|
|
while [ "${SECONDS}" -lt "${END}" ]
|
|
do
|
|
sleep "$((END - SECONDS))"
|
|
done
|
|
.Ed
|
|
.Pp
|
|
where the argument
|
|
.Sq \&$1
|
|
specifies the desired date and time in any format the
|
|
.Fl d
|
|
option to the
|
|
.Xr date 1
|
|
command accepts.
|
|
.Sh SEE ALSO
|
|
.Xr at 1 ,
|
|
.Xr csh 1 ,
|
|
.Xr date 1 ,
|
|
.Xr sh 1 ,
|
|
.Xr nanosleep 2 ,
|
|
.Xr sleep 3
|
|
.Sh STANDARDS
|
|
The
|
|
.Nm
|
|
command is expected to be
|
|
.St -p1003.2
|
|
compatible.
|
|
.Sh HISTORY
|
|
A
|
|
.Nm
|
|
utility appeared in
|
|
.At v4 .
|
|
Processing fractional seconds, and processing the
|
|
.Ic seconds
|
|
argument respecting the current locale, was added in
|
|
.Nx 1.3 .
|
|
The ability to sleep for extended periods appeared in
|
|
.Nx 9 .
|
|
.Sh BUGS
|
|
This
|
|
.Nm
|
|
command cannot handle requests for durations
|
|
much longer than about 250 billion years.
|
|
Any such attempt will result in an error,
|
|
and immediate termination.
|
|
It is suggested that when there is a need
|
|
for sleeps exceeding this period, the
|
|
.Nm
|
|
command be executed in a loop, with each
|
|
individual
|
|
.Nm
|
|
invocation limited to 200 billion years
|
|
approximately.
|