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

Ronald BartelsRonald Bartels
4 min read

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

šŸ”„

1
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