[ale] systemd talk from July has slide deck online now

Steve Litt slitt at troubleshooters.com
Tue Sep 8 20:18:07 EDT 2015


On Mon, 7 Sep 2015 14:59:08 -0400
Jim Kinney <jim.kinney at gmail.com> wrote:

> On Sep 7, 2015 1:43 PM, "Steve Litt" <slitt at troubleshooters.com>
> wrote:
> 
> > On Mon, 07 Sep 2015 11:21:24 -0400
> > Jim Kinney <jim.kinney at gmail.com> wrote:
> >
> > > http://ale.org/?p=632
> > >
> > > The slides are now added to the bottom of the announcement page.
> >
> > Hi Jim,
> >
> > I think for your next presentation, you should either get rid of all
> > comparisons to sysvinit and Upstart, or include comparisons to
> > runit, OpenRC, Epoch, Suckless Init plus s6 plus LittKit, Suckless
> > Init plus daemontools-encore plus LittKit, and the soon to be
> > published s6-rc.
> >
> > If your presentation is simply "how to use systemd", you need no
> > comparisons. If your presentation includes "why systemd is better",
> > it would be misleading not to include the many excellent init
> > systems available.

> I am unfamiliar with those. Do they all start Linux?
> 
> My goal was more to show what systemd does different from prior Linux
> startups for the major distros.

Hi Jim,

Fair enough. Still, your comparison to only upstart and sysvinit could
be misconstrued to mean it's the best init system. In fact, I'm
pretty sure the systemd industry and fans will quote your
presentation as proof of systemd being the best init.

Here are some of the many good inits:

* runit: Serves as both PID1 and typical daemontools-style service
  manager.

* s6: Very advanced daemontools-style service manager. Requires some
  other PID1. Sysvinit will fill that bill (without any of the init
  scripts: Just one line in /etc/inittab). Personally, I used
  Suckless-Init  to implement PID1, and LittKit to provide
  deterministic startup order of services.

* s6-rc: This is coming out this month: I haven't used it. From what I
  understand, this has raised the bar by combining a top quality PID1
  with the s6 service manager.

* nosh: Another PID1 plus daemontools-style service manager. Its
  runscripts require a special language, I was unable to compile it
  eight months ago. Judging from the many things I've heard its author
  saying, this should be an excellent init if you can get it running.

* Epoch: Trivially easy init system with declarative config file
  instead of init scripts, run scripts, or unit files. If I need to
  alt-init a computer in two hours, I'll be using Epoch.

* OpenRC: A sort of advanced version of what sysvinit should have been.
  I've used it a couple times. I understand it has the ability to do
  all the same stuff as systemd achieves with its socket-activation. Is
  not capable of automatically rerunning crashed services.

* RichFelker + LittKit + daemontools-encore: If you want the simplest
  possible init: One that absolutely anybody can understand and
  troubleshoot, this is it. Includes a 16 lines-of-C PID1. You can
  replace RichFelker with Suckless-Init if you want your PID1 to listen
  for SIGCHLD, SIGINT and SIGUSR1 and do the right thing, substitute
  the 83 lines-of-C Suckless Init. You'll need to write your own
  shutdown script, which isn't particularly difficult. If you want to
  know what RichFelker PID1 is, see the bottom of this page:
  http://ewontfix.com/14/

* Busybox Init: I know little about it.


USE CASES:

The main use for OpenRC, IMHO, is when your distro already comes with
it. Gentoo, Funtoo, Manjaro OpenRC.

Runit and Epoch are high quality, small footprint inits easily
installed on any Linux not tied down with a bunch of systemd-isms. Both
are easy to install, easy to configure, both can rerun crashed
processes (Epoch gives you more choice in the matter). Unless a 1
second bootup is vital to you, I can't forsee a use case not conducive
to Runit and Epoch. Servers, desktops, it's all good. Runit also works
with BSD.

S6 is a top notch service manager that can be combined with a separate
PID1 (sysvinit, Suckless-Init, systemd) to init almost any use case.
Its claim to fame is reliability: You just can't kill it. With the soon
to come s6-rc, it will be a complete init system of the highest quality.

(RichFelker|Suckless-Init) + LittKit + any daemontools-style service
manager is best when your top priority is academic simplicity.
Conforms to http://ewontfix.com/14/. It can be used to alt-init pretty
much any Linux OS not glued down with systemd-isms, and it will do a
good job as such. In reality, these kinds of inits serve more as
demonstrations: For a production machine you'd probably use runit or
s6-rc instead.

Busybox Init is used when the priority is tiny and simple. 

SteveT

Steve Litt 
August 2015 featured book: Troubleshooting: Just the Facts
http://www.troubleshooters.com/tjust


More information about the Ale mailing list