Show HN: Gabriel, a zero-configuration watchdog process
toolchain.eu
toolchain.eu
I wanted something like DJBs daemontools but with less configuration and setup. And I've seen nohup, daemonize etc. But these loose ownership of the running process, and you eventually have to do hacks if you want to do stuff like auto restart or signal degradation.
gabriel --cwd /var/run/service -- /bin/service
Killing the service: gabriel --cwd /var/run/service --kill
The main difference between this and daemontools is that this is more ad-hoc and in place. If cwd isn't specified, the current directory will be used to setup the necessary set of files to start/stop/restart a persistent service.It's also possible to specify a kill pattern which governs how the process should be forced to shutdown (similar to start-stop-daemon in gentoo):
gabriel --cwd /var/run/service --kill-pattern TERM:10:KILL:10 -- /bin/service
Send TERM, wait 10 seconds, send KILL, wait 10 seconds. Shutdown no matter what.So Gabriel does not require and explicit structure, much is left to be handled by sensible defaults.