For variety, I also present my result of doing this using the rc(1) shell (the Byron Rakitzis implementation [1]). Boot up an Alpine Linux in a virtual machine, follow the README in the tarball, and you would be able to get a working s6/s6-rc/rc (well the name...) based system. It is admittedly designed based on Alpine, but should be to some extent portable: Alpine uses a user space based on busybox, so I think most commands should be able to run as is, since a user space based on GNU/util-linux/... would be more permissive in most aspects.
[1] <https://github.com/rakitzis/rc>. Why still using a shell has just been thoroughly explained by Laurent (I think a point to add is that using the shell for run scripts makes instanced services very easy to implement); the rationale for using rc(1) was explained in [2], which is also where I first posted my results. The current version has accumulated a lot of updates, and should be significantly better. [2] <https://skarnet.org/cgi-bin/archive.cgi? 2:msp:1375:lbimjlgggoajjofdbeoc> (Sorry for all those grammatical mistakes; the technical mistakes have mostly been corrected in its follow-ups, but one remains: there actually *is* a `$PIPESTATUS' counterpart in rc(1), since the `$status' for a pipeline in the [1] implementation is a list of all exit codes from the pipeline). On Fri, May 19, 2017 at 07:53:12PM +0000, Laurent Bercot wrote: > Third, converting rc scripts from a distribution to a s6-rc service > database is currently the *most valuable contribution* you can do for > s6-rc. I'm not joking: what s6 and s6-rc need right now is adoption > by mainstream distribution, and the limiting factor is clearly the > conversion from sysvrc or OpenRC scripts to the s6-rc source format. > So if you're going to attempt this for Slackware, you have my whole > support, and my thanks; but this is a large task, and does not need > extra porting work piled onto it. If you can do that, it will be a > big, and useful, achievement, even if the scripts are still shell > scripts. -- My current OpenPGP key: RSA4096/0x227E8CAAB7AA186C (expires: 2020.10.19) 7077 7781 B859 5166 AE07 0286 227E 8CAA B7AA 186C
alpine-s6rc-conf.tgz
Description: GNU Unix tar archive