On Mon, 7 Sep 2015 14:59:08 -0400 Jim Kinney <jim.kin...@gmail.com> wrote:
> On Sep 7, 2015 1:43 PM, "Steve Litt" <sl...@troubleshooters.com> > wrote: > > > On Mon, 07 Sep 2015 11:21:24 -0400 > > Jim Kinney <jim.kin...@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