notes/notes-on-s6-init-talk-fosdem17.md

This commit is contained in:
Tony Garnock-Jones 2021-08-24 13:30:54 +02:00
parent a5447945e1
commit e907de2deb
1 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,67 @@
---
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