Talk:Comparison of init systems

Detailed Feature Comparison Table
The tabular comparison appears to be biased negatively against sysvinit and upstart. It is copied from the systemd website.

— Preceding unsigned table largely based on contributions by Lu zero and Heroxbd.

OpenRC bonus features
— Preceding unsigned table largely based on contributions by Patrick (talk • contribs) with trolling removed/added (as you prefer) by Rich0.

My point here is that if somebody wants to really do a comparison they're better off sticking to facts and not value statements. Some of the above wasn't really accurate either - you can launch multiple daemons with a single systemd unit, as long as it pulls in other units, etc. We all have blogs - if we want to rant on about our favorite init systems, that seems like the better place to do it. The chart on the main page seems reasonably factual, at least. -- Rich

Size and complexity
Debian startup is smallest, it's only shell with sysvinit (C) as dependency

Upstart is about 10 times bigger in terms of lines of code/text. Most of the extra complexity size comes from C.

OpenRC is about twice as big as debian startup. The size difference is mostly the OpenRC core written in C, which expands the footprint from ~3k LoC to ~15k LoC compared to shell.

systemd is about 10 times bigger, like upstart. But with the mandatory deps it blows up to about one hundred times the code footprint! Most of the extra code is in mandatory dependencies, but the systemd core is also bigger than anything else.

— Preceding unsigned comment added by Patrick (talk • contribs)


 * This comparison is totally misguided. Fixing it would require much more work than simply running wc(1) on the source repository. The numbers for systemd above include udev and libraries for talking to it. That's also where glib comes from: it's used by gudev, a convenience wrapper around libudev. Additionally, there's a whole slew of commands (for debugging purposes, mostly) that have nothing to do with PID 1. Like generating bootchart graphs in SVG format. Then there's logind and various other stuff.


 * One can certainly disagree with the systemd guys' preference for maintaining a bunch of loosely related stuff in a single git repository. It doesn't affect the complexity of the init system, though, and this is what this section is supposedly about.


 * As it is, just running wc(1) on the src/ subtree of a repository (and this seems to be exactly how those numbers were achieved) and then drawing bogus conclusions doesn't provide any value at all. --Lsl (talk) 18:25, 5 February 2014 (UTC)


 * So you can use systemd without dbus? If not, that’s exactly what this section is about. If you want to change it, can you do so without taking udev into account? Since you can’t build udev without systemd anymore, the answer to this should be clear. ArneBab (talk) 12:47, 28 November 2014 (UTC)

OpenRC parallel startup is an unstable feature
Acording to this comment on bug #391945:

"rc_parallel has always been considered an unstable feature of openrc. There was a very clear warning in rc.conf thatsetting rc_parallel=y can lock up your boot process.

rc_parallel=y is only to be used currently by developers and users who are willing to test the feature, and bugs against it are not considered release blockers.

I recommend removing any rc_parallel lines from your rc.conf unless you are comfortable with this risk."

I would like to change the "Yes (optional)" entry on the Parallel service startup / OpenRC cell, to "Yes (unstable)", with a link to the bug, if no one disagrees.

Update (version 0.12 and higher) The recent version of the OpenRC works with parallel setup quite nice, however there are exists corner cases in which OpenRC fails to work properly. In most of the cases problem is in init scripts themself and that are fixed when got discovered. Also openrc doesn't break dependency cycles well.

— Preceding unsigned comment added by Canek (talk • contribs)

missing s6, runit, & busybox
the article is missing s6, runit, & busybox. 666threesixes666 (talk) 18:59, 16 March 2014 (UTC)


 * I've been working on replacing sysvinit with runit on my live systems over here. If any of that info's useful/relevant then feel free to transplant it to the wiki. Ant P. (talk) 22:19, 1 September 2014 (UTC)

Uselessd?
Can someone put uselessd in this comparison?