SNOOZE(1) | General Commands Manual | SNOOZE(1) |
snooze
— run a
command at a particular time
snooze |
[-nv ] [-t
timefile] [-T
timewait] [-R
randdelay] [-s
slack] [-d
day] [-m
mon] [-w
wday] [-D
yday] [-W
yweek] [-H
hour] [-M
min] [-S
sec] command ... |
snooze
waits until a particular time and
then runs a command. Together with a service supervision system such as
runsv(8), this can be used to replace
cron(8).
The options are as follows:
-n
-v
-t
,
-T
-R
-s
The durations randdelay and
slack and timewait are parsed as
seconds, unless a postfix of m
for minutes,
h
for hours, or d
for days
is used.
The remaining arguments are patterns for the time fields:
-d
-m
-w
-D
-W
-H
-M
-S
The following syntax is used for these options:
-d
3
-d
3,10,27
-d
1-5
-d
*
-d
/5
-d
2/5
and combinations of those, e.g. -d
1-10,15/5,28
.
The defaults are -d* -m* -w* -D* -W* -H0 -M0
-S0
, that is, every midnight.
Note that
all patterns need to
match (contrary to cron(8) where either day of month
or day of week
matches), so -w5 -d13
only runs on Friday the
13th.
If snooze
receives a
SIGALRM
signal, the command is immediately
executed.
Optionally, you can keep track of runs in time files, using
-t
:
When -T
is passed, execution will not
start earlier than the mtime of timefile plus
timewait seconds.
When -T
is
not passed,
snooze
will start finding the first matching time
starting from the mtime of timefile, and taking
slack into account. (E.g. -H0 -s 1d
-t timefile
will start an instant execution when timefile has not
been touched today, whereas without -t
this would
always wait until next midnight.)
If timefile does not exist, it will be assumed outdated enough to ensure earliest execution.
snooze
does not update the timefiles, your
job needs to do that! Only mtime is looked at, so touch(1)
is good.
The snooze
utility exits 0 on
success, and >0 if an error occurs.
The command is run using exec, so its exit status gets propagated to the parent.
If no command was given, snooze
just
returns with status 0.
Leah Neukirchen <leah@vuxu.org>
snooze
is in the public domain.
To the extent possible under law, the creator of this work has waived all copyright and related or neighboring rights to this work.
January 4, 2016 | Debian |