On 17/07/2015 09:26, Rafal Bisingier wrote:
So I run them as a service with "sleep BIG" in
finish script (it's usually unimportant if this runs on same hours
every day). I can have this sleep in the main process itself, but it
isn't really it's job

 I also use a supervision infrastructure as a cron-like tool. In those
cases, I put everything in the run script:
 if { periodic-task } sleep $BIG

 periodic-task's run time is usually more or less negligible compared
to $BIG, and I'm not expecting to be controlling it with signals anyway
- but I like to being able to kill the sleep if I want to run
periodic-task again earlier for some reason. So I don't mind executing
a short-lived (even if it takes an hour or so) process in a child, and
then having the run script exec into the sleep. And since
periodic-task exits before the sleep, it doesn't block resources
needlessly.

 Whereas if your sleep is running in the finish script, you have no
way to control it. You stay in a limbo state for $BIG and your service
is basically unresponsive that whole time; it's reported as down (or
"finish" with runit) but it's still the normal, running state. I find
this ugly.

 What do you think ? Is putting your periodic-task in a child an
envisionable solution for you, or do you absolutely need to exec into
the interpreters ?

--
 Laurent

Reply via email to