On Fri, 15 May 2020 14:44:06 -1000 Joel Roth via Dng <dng@lists.dyne.org> 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 _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng