Alternatives to systemd

This page describes the various init systems which are available as alternatives to systemdFor a more comprehensive explanation of init, and runlevels, see wikipedia.org Page: Init

Init is the first process started during system boot. It is a daemon process that continues running until the system is shut down. Init is the direct or indirect ancestor of all other processes, and automatically adopts all orphaned processes. It is started by the kernel using a hard-coded filename; if the kernel is unable to start it, panic will result. Init is typically assigned process identifier 1.

The init scripts (aka rc runtime configuration scripts) are launched by the init process to guarantee basic functionality on system start and shutdown. This includes (un)mounting of file systems and launching of daemons. A service manager takes this one step further by providing active control over launched processes, or process supervision. An example is to monitor for crashes and restart processes accordingly.

These components combine to the init system. Some init systems incorporate the service manager in the init process or have init scripts in close relation to them. Below, such init systems are referred to as integrated, although entries in different categories may explicitly depend on each other.

A nice (but still non-comprehensive) overview of init systems can be found in this blog entry, titled "A history of modern init systems (1992-2015)"

exec chaining, dependency based daemontools family C++ init and supervision suite with reliable logging, (console) virtual terminal management, systemd unit file compatibility; can also be used as service manager under a different init

parallel service launcher with synchronisation and integrity-checking (primarily to speed up SysV init boots, akin to startpar)

2002-08-06

simpleinit(-msb)

dependency based (implements the "need" concept) sequential init without proper supervision (respawn only, no output logging); shipped with util-linux until v2.20; the msb fork is still used in Source Mage Linux

can be used by the SysV RC boot system executor to allow parallel process system startup

2014-02-09

Safer, supervision-friendly replacements for crond and atd

Simpler, supervision-friendly crond/atd replacements
listed below since systemd provides its own job scheduling capabilities
in its weird attempt to oust independent solutions and thereby suck
otherwise unrelated functionality into the init system to
enforce the usage of its own confined straitjacket framework
(ninit can also spawn services on specified dates or time intervals
if one really wants to use process #1 for that purpose).

inetd alternatives

Simpler, safer, supervision-friendly, and more reliable replacements
for the network super-server daemon inetd.

Listed below since systemd provides similar features
to creep into a totally unrelated problem domain and oust
the single-purpose daemons specifically designed for that task
in order to take over their business and force its own straitjacket
APIs and tools upon every single Linux distro and user
(finit provides a builtin inetd for those who need such capabilities in process #1).

In April 2012, udev's source code was merged into the systemd source tree.[1]

Although udev can still be compiled for usage without systemd, Lennart Poettering said that they will not polish udevd outside of
systemd[2], adding:

"Yes, udev on non-systemd systems is in our eyes a dead end, in case you haven't noticed it yet. I am looking forward to the day when we can drop that support entirely."

This is just another sad example of systemd's annoying habit of sucking
otherwise unrelated functionality
into the init system and trying to make independent single-purpose daemons obsolete
in an impertinent attempt to enforce its sole usage upon every Linux distro and user.

So to be on the safe side, you probably want to use an alternative to udev: