Re: Can s6 be enough?: was s6-ps

From: Laurent Bercot <ska-supervision_at_skarnet.org>
Date: Sat, 05 Jan 2019 21:22:13 +0000

>Everybody appreciates the preceding two features, but personally, I
>don't think they're absolutely necessary. Runit has neither, yet it
>works just fine for most things.

It really depends on what "most things" are.
Small, server-only appliances? sure.
Distributions where you can start all the oneshots first and all
the longruns later? sure, but there aren't many of those. Typically
udevd is a daemon you want to bring up very early, before some
oneshots; so in the runit model, what do you do with udevd?

Void Linux, which uses runit as its init system, has an answer to
that: it doesn't supervise udevd.
Don't you think that's ugly? Because I think that's ugly.


>So I'm thinking that although process ordering and intermixing are
>features we'd everyone likes, all but the most discerning among us
>could get along without them and therefore init with s6 alone.

Well yes. You can even get along with no supervision at all.
Most people got along with sysvinit and sysv-rc just fine. The
question is, do you want to? What do you expect from your init
system? what functionality do you want to have, what functionality
do you want your distribution to provide?


> My opinion is one can boot just fine with s6 alone, as long as
>you're willing to forego startup ordering and intermixing of longruns
>and oneshots, which by definition a runit fan is.

Yes, it can be done. As a matter of fact, it's completely trivial to
take a Void Linux distribution and replace runit with s6. It works
flawlessly. It just hasn't been done in the official Void distribution
yet because the Void maintainers have other priorities, and runit
works well enough for them.

s6-rc and anopa exist for the people who are *not* willing to forego
intermixing of longruns and oneshots. It all depends on what your
priorities are, of what the aim of your distribution is.


>So what do you all think? Is s6 a useful init system without s6-rc?

Terminology, please! s6 isn't an init system per se. It's a process
supervision system; and s6-rc is a service manager, aka machine state
manager. Those are _components_ of an init system. You can build a
complete, full-featured init system with s6 and s6-rc. You can also
build an init system with s6 alone (and some scripting as
s6-linux-init does), but it won't include a service manager. It's
your call, really: I provide the mechanisms, distributions provide the
policy. When they don't utterly give up on their duties, obviously.

If you haven't watched it yet, please take a look at this video:
https://archive.fosdem.org/2017/schedule/event/s6_supervision/
It's only 15 minutes long and explains all the terminology.

--
Laurent
Received on Sat Jan 05 2019 - 21:22:13 UTC

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