I know some people will cringe a bit, but hear me out. There are still
lots of older installs out there, but none of them will give you a true
supervisor when you start a service. The scripts basically start the
daemon, make a note of its PID, and then assume it's still running.
What if you could keep the existing structure and "service foobar whatever"
scripting, but replace the actual /etc/init.d scripts with a shim, one that
would activate the appropriate daemon and invoke supervision when you
called it? A few of the existing problems would go away - there would be a
real supervisor and no stale PID files, etc. In effect, gluing the
supervisor to the existing framework eliminates some of the most glaring
I hacked together a little script to try it out. The issues I've
immediately run into are:
* things like "reload" won't work, because there really isn't a consistent
method of signalling a daemon to "reload its settings". The closest I can
get is to map "service foobar reload" to having a SIGHUP sent to the daemon
* you still have all the restrictions of the structure of the system, i.e.
6 runlevels, no parallel startup, etc.
I'm still exploring this a little bit. Would this shim have any real
value, other than to help transition older systems into a full
supervisor-plus-system-state-manager? Comments and ideas?