On 26/07/2015 04:35, Steve Litt wrote:
For all I know it might amelliorate the other problem: insane init script complexity, by putting more of the details in the s6 run script.
I'm not sure that would be a good trade-off. An init script is run once at boot time - or whenever you're changing the machine state - whereas a ./run script is run every time the service starts, i.e at least as often. Better move as much complexity as you can *outside* the run script.
Me, I'd just go with s6 out of the box, but I guess OpenRC is more corporationally correct or something like that
What OpenRC does and s6 alone does not is dependency management, which is important for heavyset services (including, I guess, desktop setups). A supervision suite does not handle dependencies between oneshot services and longrun services, and only implicitly handles dependencies between longrun services (by letting them restart until everything works). A real dependency-based systems starts services in the order they are needed, which is all in all a good thing. If you want to test a supervision suite + dependency management system combo doing the right thing, try out anopa, or the publically available preliminary version of s6-rc. ;)
it can use s6 to do the supervision (and sysvinit to do the PID1, you can't make this up, folks).
OpenRC runs s6-svscan as one of its services, so it can't use it as init - so it needs to run under another init. But that's not such a big deal. When switching "init systems", the rc subsystem is really the difficult part. Once you have a working rc system, it's not too hard to switch pid 1. -- Laurent