Thinking about service managers
These are just "out loud" thoughts...
There are many service managers that derive from, or were inspired by, a package called 'daemontools'. Runit is one of them.
I have been sifting so many of the service managers, with maybe init replacement, but have always been left discontented.
Trying to pin down why this discontent...
The emphasis on automatic restarting of daemons. Why? If a daemon
crashes for some reason, I don't want it to be automatically restarted.
The lack of support for one-shot services.
Incomplete dependency management. For example, I want a service to wait
until there is a network up. Nothing else to be held up. I know that I
can do it by examining /sys/class/net/dormant, but fitting this in as a
dependency is at best a klutz, as far as I can see, in the service
managers that I have looked at.
There are lots of init replacements with service management, such as
minit, ninit, cinit, myinit. Or, service management with optional init
replacement, such as runit and s6. Then there are some that are service
managers only, such as serel.
I got excited that Runit applets are in Busybox, until I realised how
limited it is. Not the Busybox implementation, the fundamental concept
of daemontools. Unless my understanding has not fully grasped the
capabilities, which is possible.
Here is another...
OpenRC
OpenRC is developed for Gentoo, and adopted by some other distros. It
is a service manager, though apparently can become an init-replacement.
What is particularly interesting is that thought has gone into using it
with Busybox and Busybox's init:
https://blog.flameeyes.eu/2012/03/using-busybox-with-openrc/
Download source:
https://github.com/OpenRC/openrc/releases
Docs;
https://www.calculate-linux.org/main/en/openrc_manuals
https://wiki.archlinux.org/index.php/OpenRC
https://wiki.gentoo.org/wiki/OpenRC
However, I was unable to compile it statically, so have taken it no further.
Will keep researching...