]> git.netwichtig.de Git - user/henk/code/snooze.git/blobdiff - README.md
README.md: rate-limiting example
[user/henk/code/snooze.git] / README.md
index d5e86d1ad6961052e25ad77647eef559252db9a0..9d10153dacefd4663bfff4e4f0ce9d084e5fb4da 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
 ## snooze: run a command at a particular time
 
-`snooze` is a new tool for to wait until a particular time and then
-run a command.  Together with a service supervision system such as runit,
-this can be used to replace cron(8).
+`snooze` is a new tool for waiting until a particular time and then
+running a command.  Together with a service supervision system such as
+runit, this can be used to replace cron(8).
 
 `lr` has been tested on Linux 4.2.
 It will likely work on other Unix-like systems with C99.
@@ -23,6 +23,7 @@ Over cron:
   runs, even across reboots
 - randomized delays (some cron have that)
 - variable slack (no need for anacron)
+- ad-hoc usage possible, just run the program from command line
 
 Over runwhen:
 - less confusing usage (I hope)
@@ -31,6 +32,7 @@ Over runwhen:
 
 Over uschedule:
 - due to supervision, no centralized daemon required
+- filtering by ISO week and day of year
 
 ## Rosetta stone
 
@@ -158,6 +160,16 @@ Use snooze inline, cron-style mail:
        actualjob >output 2>&1 ||
                mail -s "$(hostname): snooze job failed with status $?" root <output
 
+Snooze for rate-limiting a general purpose runit service: don't
+restart faster than every two minutes. (Note that after a crash with a
+daemon runtime of more than two minutes, it will be restarted
+immediately):
+
+       set -e
+       snooze -H'*' -M'*' -S'*' -t timefile -T 2m
+       touch timefile
+       exec mydaemond
+
 ## Installation
 
 Use `make all` to build, `make install` to install relative to `PREFIX`