Re: s6 as a systemd alternative

From: Steve Litt <slitt_at_troubleshooters.com>
Date: Wed, 28 Jun 2017 13:40:18 -0400

On Mon, 26 Jun 2017 14:53:50 +0000
"Laurent Bercot" <ska-supervision_at_skarnet.org> wrote:

> >a bunch of hackers behind Void Linux[2] made everything tick on top
> >of runit without all that much effort.

[NOTE: Nothing I say in this reply should be interpreted as being
anti-s6, but instead be interpreted as pro-runit.]

>
> The problem with the runit model is that it is pure supervision -
> it does not provide service management. You have to run all your
> oneshots _before_ you can start longruns.

Not necessarily true. You can easily run longruns early by creating a
second service directory and a second link directory. You make the
service specific directory, create run script and the supervise
directory within it, and symlink like the following:

ln -s /etc/sv2/gnumeric /var/svlink/gnumeric

Then do the following:

runsv /etc/svlink/gnumeric

Assuming that /etc and /var are on the root partition, the preceding
command can be done as early as you want, as long as the root partition
is mounted.

You can also run a one-shot very late, if willing to kludge. You simply
make the one-shot a long-run whose last command is a forever long
sleep. It's ugly, and it runs again if somebody does killall sleep, but
it works.

There's also a way to run two different instances of runsvdir, using
different link directories for each.


> See
> https://skarnet.org/software/s6-rc/why.html and
> https://fosdem.org/2017/schedule/event/s6_supervision/ (15 mn video)
> to understand what goes into an init system and why runit alone is
> not quite enough.
>
> Of course Void Linux manages to do it, but it is, pardon my French,
> a hack job: AFAICT, udevd is not supervised,

As I mentioned above, making it an early long-run would be trivial.


> and some oneshots are
> implemented via longrun processes doing nothing. This is cramming
> the service management peg into the process supervision hole,

True.

> and
> can never be perfect

True.

> - Void would definitely benefit from switching
> to real service management.

The truth of the preceding statement depends entirely on your
priorities. If you prioritize simplicity over software orthodoxy, built
in process ordering, and a maximally recoverable boot instance, you'll
prefer runit. That's why I prefer runit.

Runit sounds like it would have a lot more problems than it really
does. I've used runit on Void for 2 years and have had no problems I
could trace to any runit software.

> But so far they haven't expressed any
> desire to switch.

Different priorities. Runit sacrifices several features which seem
necessary but turn out not to be so necessary, for more simplicity than
s6, not that s6 is incredibly complicated. I'd be proud using either
one of them.

SteveT

Steve Litt
June 2017 featured book: The Key to Everyday Excellence
http://www.troubleshooters.com/key
Received on Wed Jun 28 2017 - 17:40:18 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC