Hacker News new | past | comments | ask | show | jobs | submit login

> systemd sucks balls

No it doesn't. Shell scripts in your init system sucks balls. Systemd is great.




I am in favor of a new discussion about existential philosophical differences again. Almost missed the systemd drama.

I use systemd on pretty much any linux machine but am very sympathetic to the arguments of its detractors, which to a significant degree results from the behavior of its proponents and the inability to see that you actually do loose flexibility in theory.

You could argue taht GNU/linux could be called GNU/systemd/linux.

I couldn't write a better init system than systemd, but I like the idea that some people could. And I am pretty sure there are people like that.


> I couldn't write a better init system than systemd, but I like the idea that some people could. And I am pretty sure there are people like that.

But they did not. Functionally, systemd is great. I don't like the architecture, for its monolithic non unix characteristics. I begrudgingly started to use it when Debian switched to systemd. After some time, I must admit it is leaps and bounds better than sysv init, and better than the alternatives that appeared before it.


Why did the shell scripts in my init system "suck balls" ? Init scripts worked wonderfully for me, systemd solved no problems that I had. What it did was add a lot of complexity to my world for no perceptible benefit. Maybe my desktop, that I reboot twice a year, boots up 1 second faster? Maybe? Probably not though, because the long tent is probably nfs mounts or something.

I think the reality is both have their pros and cons, and it depends on your use case.


systemd wasn't necessary for init when you ignore Poettering's binaries which broke with common interfaces (now there are more, sigh). It's worse from a maintenance standpoint, for init. It's quite sane for a daemon management system. It just happened to combine a bunch of systems into one and now we're stuck with it.


Sigh No, it really does, and it has nothing to do with init systems.

Systemd was never necessary. An init system just has to run a couple of steps once a system starts or stops. Bash is fine for that, or a tiny C wrapper. Look at every freaking Docker container in the world - they all use tini (https://github.com/krallin/tini), the tiniest, most dinky init tool ever made, because it's totally fine to use something small and stupid to initialize some system calls and execute a program. Once you've "started up", you can choose to use a dedicated service manager to manage various applications.

There's a reason we use K8s, Nomad, or Docker for container scheduling even on a single host: Systemd is not good at it, and we'd have to replace it to scale up to over 1 host anyway. We use distributed decentralized services on modern systems. Systemd isn't intended to work for modern services; it's intended to just be a "faster desktop system", iterating on what we had before, rather than being redesigned for modern workloads and applications.

Anyone who used Systemd purely because they didn't like Bash scripts had no idea how to manage a system. There were already replacements that managed services well, and you'd just install those and use them, with very minimal change to the rest of your system. I mean, if developers need to write a new microservice, they don't say, "I know, I'll use Systemd!" They say, "I know, I'll use minikube!" Because it actually gives them everything they'll need to run their application locally, and on a globally distributed decentralized fault-tolerant service coordinator. Their application can then opt-in to all of K8s' myriad customizations and complexities, but the rest of their operating system doesn't have to!!

But furthermore, as a system itself, Systemd actually just sucks. The user interfaces are totally clunky and not standard to anything else we have in Linux. The binary format makes it much more annoying to use with other tools without having to learn how the wrappers work, and managing the binary files from a systems perspective is annoying. The filesystem structure is fucking atrocious; who the fuck puts config files in /lib ??? Why do I have to re-run 3 commands just to reload a daemon after I've edited its service file?? Why do I need to now learn an entirely new DNS resolver setup that I never asked for?? Then there's the bugs and security issues and generally arrogant, dickish way Systemd works with other open source projects. It sucks balls. You can't tell me it doesn't, because I have to use the damn thing every day, and work around its dumb issues.

To people who manage systems for a living, and regular users just trying to get on the 'Net, Systemd was not some revelation from the gods because "oh no, bash scripts". Bash scripts may have been annoying, but Systemd is annoying in a whole new, more complicated way.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: