Troubleshooters.Com® and Linux Library
Present:

Init System Choices


Introduction

Vick and Bill are a hoot when they start arguing. Vick says Bill is "Mechanically helpless" and Bill calls Vick a "Neckbeard".

Vick drives the same 1968 VW Bug, now clocking in at 300K miles, that he's driven since 2002. It's a dead bang simple car. When the engine finally wore out, he personally replaced it with a bigger one, in his driveway, over a weekend. He personally replaced the clutch a couple times. With some wrenches and screwdrivers, Vick replaced the stock taillights with LED arrays brightly visible a mile back. Vick's car has no modern features, but that's a scant price to pay for knowing every intimate aspect of his car, and the ability to keep it running in great running condition with minimum hassle and expense.

Bill drives a 2010 Chevy Equinox with a rear vision camera, 4G LTE Wifi, OnStar, a remote control to start his engine remotely, Chevrolet Mylink touch screen, chrome accents, Active Noise Cancellation, and an 8 way power-adjustable driver's seat. Bill's car is so complicated he's never taken a wrench to it, meaning he's spent about $2.5K on repair and maintenance for each of the two years he's owned it, but that's a scant price to pay for getting there in style.

It's obvious these two will never agree. They have completely different ideas of what a car should be, and completely different priorities.

It's likely that Bill would happily use the systemd init system, and Vick would use anything but systemd. Just like cars, your init system is your choice.

These days, the default init choice for most distributions is systemd. If you like systemd, or if you don't care and just want to use what your distro gave you, use systemd, and ignore those who call you wrong for doing so. Likewise, if systemd isn't what you want, whether because of functionality, architecture, politics, or Lennart Poettering's description of systemd and how it will evolve, use a different init, and ignore those who call you wrong for doing so. Either way, it's your choice, and you owe nobody an explanation of your choice.

One thing that must be made clear: You do have a choice in the matter. You can change to OpenRC by moving to Funtoo or Gentoo. On many distros, you can switch to other select inits with the package manager. You can move to the typical BSD init by moving to FreeBSD, PC-BSD or OpenBSD. Manjaro Linux has an ISO for its "OpenRC edition", so you have a clear shot at getting OpenRC by choosing Manjaro.

And beyond all this distro-switching, you can install certain simple inits, including but not limited to Epoch and runit, on almost any distro you choose, including, believe it or not, CentOS. The Manjaro Experiments page shows you how to do so, what landmines to watch out for, how to troubleshoot init problems, and lots more.

If you want to learn just a little more about features and benefits of the various inits, see Features and Benefits.

The "Init System Choices" subsite contains mostly information about installing the simpler, less used init choices. If you're looking for help on systemd, you're better off consulting a systemd website. If you're seeking info on sysvinit, that's been the default init for many distros the past two decades. As far as Upstart, my understanding is that Upstart is lame duck. For all the rest, this subsite, "Init System Choices", is a good starting point if you want to use a different init than the one delivered by your distro.