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 issues. 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 being supervised. * 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?
