No systemd - Resources against systemd and alternatives
What is systemd?
systemd claims to be a good and modern replacement for SysVinit — a so called init daemon. Usually the init daemon is the first process spawned by the kernel and thus has the PID #1 and is responsible for spawning other daemons which are necessary for the OS to operate, e.g. networking, cron, syslog etc.
List of init daemons*:
systemd
SysVinit (home)
OpenRC (home)
runit (home)
s6 (home)
Shepherd (home)
finit (home)
Hummingbird (repo)
superd (repo)
31init (repo)
Dinit (repo)
procd (repo)
uselessd (repo; inactive)
Upstart (home; inactive)
InitNG (repo; inactive)
cinit (home; inactive)
minit (home; inactive)
Epoch (home; inactive)
dmaster (repo)
*inactive: No development activity has occurred for several years.
What is so bad about systemd?
Notable bugs and security issues:
Datadog outage costing 5 million dollars caused by systemd upgrade
Widespread outage was caused on Azure, when systemd 237-3ubuntu10.54 was published to the bionic-security pocket (instances could no longer resolve DNS queries, breaking networking)
#437: timeX.google.com provide non standard time
#1143: PID1 getting stuck printing "systemd[1]: Time has been changed" continuously
#1312: restarting systemd service on dependency failure
#1596: journalctl -r -n flags incorrectly processed
#2402: Mount efivarfs read-only
#2460: Showing status of service via systemctl is slow (>10s) if disk journal is used
#4863: systemd-journald drops all bytes after '\0'
#5644: tmpfiles: R! /dir/.* destroys root
#6237: systemd can't handle the process privilege that belongs to user name starts with number, such as 0day
#6369: hostnamed does not like fqdns with trailing dots
#6381: systemd-cryptsetup: Booting with encrypted root partition fails instantly
#6478: `systemctl` should not consider active->failed as a successful operation
#6620: services writing to stdout become silent after journal restart
#7184: resolved: fix loop on packets with pseudo dns types (CVE-2017-15908)
#8579: systemd breaks my mouse
Out-of-Bounds write in systemd-networkd dhcpv6 option handling (CVE-2018-15688)
#6078: Applying systemd-networkd configuration disconnects all other interfaces
System Down: A systemd-journald exploit (CVE-2018-16864, CVE-2018-16865, and CVE-2018-16866)
#11810: Can't suspend again after suspending one time (explanation why this is bad)
Systemd user manager interferes with ecryptfs - private directory not being unmounted (also umount of ecryptfs does not automatically clear the keyring and ecryptfs-utils: Private directory not automatically unmounted anymore on logout)
#2913: journald is unable to attribute messages incoming from processes that exited to their cgroup, due to /proc vs SCM_CREDS race
Other issues arising around systemd:
systemd will be able to kill a process if he needs/wants more RAM
We need to enforce the use of systemd to everyone, by the creator of systemd itself.
systemd kills background processes after user logs out (see also: [RFE] add a way to run in a new systemd scope automatically)
Don't panic, but Linux's Systemd can be pwned via an evil DNS query
Systemd Could Fallback to Google DNS?
DNS search domain not removed from resolv.conf on disconnect
systemd does not respect system wide resource limits
How do I get rid of systemd?
Replace systemd with an alternative init system:
Ubuntu Wiki: Permanent switch back to upstart
Debian Wiki: Changing the init system
Linux distributions without systemd:
Alternatively you can use Linux distributions which do not use systemd by default:
A good summary about most of the beforementioned distributions can be found here.
BSD alternatives:
You can also consider changing to BSD derivatives:
Useful links
The world after systemd
I Hate Systemd
Search for distributions without systemd on DistroWatch.com
suckless.org on systemd
Broken by design: systemd
systemd-free linux community
Twitter Account @systemdsucks