Re: s6 as a systemd alternative

From: Steve Litt <>
Date: Wed, 28 Jun 2017 12:44:28 -0400

On Mon, 26 Jun 2017 17:05:15 +0200
Istvan Szukacs <> wrote:

> Hi Charles,
> Yeah I can clarify. The only thing that I (or for that matter saner
> systems engineers) want from systemd is to be a better sysv init.

If what you want is a better sysv init, the world is your oyster:

* runit
* s6
* Epoch
* Suckless Init plus daemontools-encore (or any other supervisor)
* Sysvinit PID1 plus OpenRC plus supervisor for any longruns
* I've heard, but not personally confirmed, that busybox init is good

Making s6 "systemd compatible" would only lower s6's quality.


> This would allow me to run redhat/centos based
> systems

This is the crux of your problem. Redhat/centos are built from the
ground up, both technologically, economically, and monopolistically, to
use systemd. My advice would be that if there's a compelling reason for
you to use Redhat/centos, you stick with systemd. To do otherwise would
be to continually fight the system. If continuing to use Redhat/centos
isn't your top priority, I'd suggest you move to one of the many
sans-systemd distributions. With any distribution that uses any init
system other than systemd, it's pretty easy to replace that init system
with s6.

> and use service files without being worried

Sysvinit service files are responsible for untold heartache. Their
enigmatic complexity is what drove me to start using daemontools to
run processes a decade and a half ago. It's my personal belief that
sysvinit service files are what created the emotional opening for people
to unwisely switch to systemd. Many of these scripts are hundreds of
lines of cryptic bash code, and most of them would translate to run
scripts less than 10 lines long in runit, s6 or daemontools-encore.

My suggestion would be that for each daemon you run, you create a run
script, using the service files only to determine the args to use when
running the program (and don't forget to change the args to make the
program run in the foreground).

Here's my advice to you:

1) Switch to a sans-systemd distro

2) Install s6, but run it strictly as a process supervisor

3) 1 by 1, replace the sysvinit or openRC service file with an s6 run
   script, and then move that run script where it won't run in its
   original init.

4) Not necessary, but if you want to run a 100% s6 machine, switch PD1
   to the s6 PID1, and properly configure the s6 rc scripts. Install
   s6-rc to bring order to your boot process.


Steve Litt
June 2017 featured book: The Key to Everyday Excellence
Received on Wed Jun 28 2017 - 16:44:28 UTC

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