I need to explain my objective.
The goal is not to use S6 and Runit but replacing Runit by S6. S6 is the child of Runit with more features and better conception.
When i have started the project i have decided to use Runit but i followed S6 during this time, this is one of the reason why i do not implemented xxx-runitser as dependencies on main xxx-nosystemd package (so, portability). In fact xxx-nosystemd can be used with Runit or S6 without changing anything ( think before doing :)). Well now the system is ready to pass on more complex(not really) but more complet init and supervisor service; i can concentrate on it.
Why this choice :
- Runit wake up every 14 second for see if something change. S6 never wakes up unless it receives a command via s6-svscanctl.
- the log -> S6 provide a better way for this. i can create my own syslog-ng if i want and the implementation on pid 1 is really better
http://skarnet.org/software/s6/s6-log.html
- Pid 1 run only the strict necessary (that means, make a log, start the supervisor). So less applications on it, better stability. All what i run on PID1(file /etc/runit/1) under Runit can be a service on PID2 under S6 and obviously supervised. This change is really a good features and provide a better way to make/maintain a stable system or to debug it.
- execline : beautifull tools really
- managing dependencies between service is possible (s6-rc) not under Runit. One shot for a service can be made easily (difficult on Runit). Socket activation possible (i'm not a fan of this features but it can be possible)
this is just a not exhaustive list :)
- tiny scripts as Runit, can be easily to find bug under 300 line of code than xxx-million like systemd or open-rc(joke here)
@ However, It was noted on this forum that openrc and runit can work together
I don't like open-rc and s6 provides the same thing but with a better way without having two different system
@ By pid 1 you mean stage 2 right?
Not, /etc/runit/1 is the PID1 process, under anopa is aa-stage1 and under S6 is init file :). well when i e.g. mount the cgroups under PID1 on runit i do the same thing but on PID2 under s6 (really a better way). Same thing for udev, udev is mounted and SUPERVISED on PID2 under S6. You understand the difference between them?
@ so basically, s6 (aa-start) initializes runit services (instead of s6-svscan) into parallel?
i don't know exactly for anopa and i will not use anopa, as you said "which is not purely s6", i will work with pure s6 suite and this "much less along side runit. Slightly because browsing through the blog site indicates that jjacky spends more time on systemd tools" is the another reason.
@ at least it is proven that runit is rock solid
same thing for s6 :)
Well, i continue to provide Runit but i think a migration to s6 become with the time, making to different version is easy because my package can be use for the twice :)