On Fri, 15 May 2020 14:44:06 -1000
Joel Roth via Dng <dng@???> wrote:
> Reminds me to revisit https://ewontfix.com/14/
> for Felker's Broken by Design article on systemd.
That web page changed my life. When I saw, on that page, how simple PID1
could really be, that was when I really started to despise systemd.
I made a more or less complete init system by cobbling together Rich
Felker's 16 line PID1 shown on
https://ewontfix.com/14/ with
daemontools-encore, a slightly updated but true to the original version
of djb's daemontools. My init was a little squirrelly, as you can
imagine, but if you were willing to run the shutdown script manually,
and boot to CLI then startx, it pretty much worked. This enraged me:
The fact that a Troubleshooting Trainer could make an init in a couple
weeks, yet the Redhat/Freedesktop/Poettering axis was telling us what a
complex thing an init was.
By the way, if you're a Felkerist, runit comes closest to the full
implementation of the Felker ideal. However, even Felker admitted that
his 16 line PID1 wasn't necessarily sufficient. The s6 init has a PID1
that contains a very simple process supervisor that supervises one
program: The real s6 process supervisor. So its PID1 does more than
Felker's or runits, but only a defined amount more.
>
> None of the other init systems could compete
> sysvinit due to the latter's huge installed
> base. Except when marketing came along...
It's such a shame. Runit and s6 were both there, waiting to be picked
up and used. Both were 10 times easier than sysvinit. But noooooooo.
Back in the mid 00's, I began switching my daemons from sysvinit and/or
upstart to djb's daemontools. Life was just easier that way. My friends
all told me that was stupid: Why learn two softwares when you could do
it all with one? I'll tell you why: I could *never* understand either
sysvinit or upstart, but once a daemon was set to run on daemontools,
it was completely understandable.
You know, runit's or s6's process supervisor could be used, on systemd
systems, as a tobacco patch to wean the user off systemd, one process
at a time. As each daemon gets moved to runit or s6, that daemon's unit
file name gets put in a shellscript that disables systemd's execution
of that daemon. It's very easy to do.
Runit and s6's process supervisors can also be used as tobacco patches
for sysvinit.
SteveT
Steve Litt
May 2020 featured book: Troubleshooting Techniques
of the Successful Technologist
http://www.troubleshooters.com/techniques