synit/notes/notes-on-s6-init-talk-fosde...

1.9 KiB

title
Notes on Laurent Bercot's talk at FOSDEM 2017

Talk more about s6 and init than s6 and supervision.

We can get to 100% satisfaction with an init system. Lots of people are still unhappy with their init system though.

This talk is about design of an init system.

4 elements:

  • /sbin/init (the startup scripts/programs/processes)
  • PID 1
  • process supervision
  • service management

These 4 elements don't have to be in the same process.

02:55

Process supervision: supervision tree, rooted at pid1.

"Supervision only applies to daemons" - huh, interesting

Service management: bring services up/down; More generally, change from one state to another.

Services: oneshots (short-lived, with side-effects) or longruns (daemons). Have dependencies (enforced by service manager).

  • Ah, a oneshot might be a traditional-init-like "run a program to set things up" so that the service is "running" even though there's no particular process you can point to that is the service?

    • 10:30 - Void Linux has only longruns (?) and so "hacks", "longruns that do nothing" are used to emulate oneshots

05:40

Ah this is an interesting perspective. Bercot classifies various systems in terms of the 4 elements:

                               /sbin/init   pid1   supervision   svcmgr
Integrated init systems
(systemd, launchd, upstart)        ✓         ✓          ✓          ✓

sysvinit, BSD init                 ✓         ✓          ✓
  - sysv-rc, /etc/rc                                                ✓

OpenRC                                                              ✓

08:10

Daemontools family - daemontools (1998!), daemontools-encore, runit, perp, s6 - supervision suites; nosh - suite of tools similar to s6

09:55

Supervision suites are not enough - only 1/4 of an init system.

11:40

s6: technical aspects

"reproducible launch environment" even for oneshots