In Defence of systemd | A Modern Solution for Linux, Despite the Haters š


Systemd. Just the mention of it in certain circles is enough to trigger endless debates, blog rants, and BSD folks shaking their heads in disapproval. It has been called "bloated," "overcomplicated," and even "a violation of UNIX philosophy." Yet, despite the noise, systemd is now the default init system in almost every major Linux distribution, and for good reason.
Itās time to break through the hate and acknowledge the truth: systemd is a huge improvement over legacy init systems, and much of the criticism is either outdated, exaggerated, or just plain wrong.
A Necessary Evolution of Linux Init Systems āļø
Before systemd, Linux relied on SysVinit and Upstartāsystems that worked, but not without flaws:
Slow boot times ā³ ā Init scripts ran sequentially, meaning one service had to finish starting before the next could begin.
Difficult dependency management š¤Æ ā Manually managing which services started before others was fragile and prone to errors.
Poor logging š ā Tracking down why a service failed involved digging through scattered logs, sometimes with little useful information.
Systemd solves these issues by introducing parallel service startup, a powerful dependency resolver, and a structured logging system (journald) that makes debugging way easier.
Debunking the Myths šµļøāāļø
Letās tackle the most common complaints against systemd and why they donāt hold up:
1ļøā£ "Systemd is bloated!"
This argument usually stems from the fact that systemd does more than just initialize services. It includes features like journald (logging), networkd (network management), and logind (user session tracking).
But hereās the thing: these arenāt mandatory. Distributions can pick and choose which components they want. Plus, systemd isnāt some uncontrollable beastāitās modular, and users can disable or replace parts they donāt like.
If systemd is "bloated," then so is the Linux kernelābecause it, too, includes networking, device drivers, and other functionality that technically could be separate.
2ļøā£ "Systemd is against the UNIX philosophy!"
Ah yes, the sacred UNIX philosophy: "Do one thing and do it well." BSD enthusiasts and old-school UNIX folks claim that systemd violates this principle.
But letās be realāLinux is not UNIX. It stopped being UNIX a long time ago. Modern computing needs modern solutions, and sometimes, having integrated components makes things simpler, not more complex.
Would you rather configure five separate tools for logging, service management, dependency tracking, session handling, and shutdown sequencesāor use one well-integrated system? Efficiency matters.
3ļøā£ "Systemd locks users into a single ecosystem!"
Itās true that systemd has become the default for most Linux distros, but thatās because it works better than the alternatives. Distros arenāt forced to use it; they just choose to because itās the best option.
And if you really hate it? Well, Devuan, Alpine, and Slackware still let you live in a systemd-free world. Enjoy your init scripts.
The Advantages of Systemd š
š 1. Blazing-Fast Boot Times
Systemd dramatically reduces boot times by starting services in parallel instead of waiting for each one to finish sequentially. This is a game-changer, especially for servers and embedded devices.
š ļø 2. Simple Service Management
Gone are the days of manually writing shell scripts for each service. With systemd, managing services is as easy as:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl restart nginx
Want to see why a service failed? Instead of sifting through multiple logs, just run:
sudo journalctl -xe -u nginx
šµļø 3. Better Debugging with Journald
System logs in systemd are structured, making them easier to parse and analyze compared to the mess of traditional syslog.
sudo journalctl -b # View logs from the last boot
sudo journalctl --since "1 hour ago" # View logs from the past hour
No more grep-ing through /var/log/messages
.
š¹ļø 4. Powerful Dependency Handling
Systemdās dependency management ensures services start in the right order. For example, it wonāt start a web server before networking is ready.
sudo systemctl list-dependencies nginx
Good luck doing that with SysVinit.
š 5. Security Features
Systemdās systemd-analyze security
command provides insights into service securityāsomething legacy init systems never did. It also offers advanced sandboxing features, restricting what services can access.
Wrap | Systemd Is Here to Stay š
Yes, systemd is different from traditional init systems. Yes, it does more than just launch services. But calling it "bloated" or "evil" ignores the massive benefits it brings to Linux.
The hate it getsāespecially from BSD folksāoften stems from nostalgia and an attachment to the past. But Linux isnāt about staying in the past. Itās about innovation, efficiency, and making things work better.
At the end of the day, systemd makes life easier for sysadmins and users alike. So the next time someone rants about it, just smile and type:
sudo systemctl start ignore_the_haters
š„
Subscribe to my newsletter
Read articles from Ronald Bartels directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ronald Bartels
Ronald Bartels
Driving SD-WAN Adoption in South Africa