Should i switch from systemd to another init system, What are the advantages of using another init system?

prettydarknwild@lemmy.world to Linux@lemmy.ml – 67 points –

I have seen so many times that systemd is insecure, bloated, etc. So i wonder ¿does it worth to switch to another init system?

89

You are viewing a single comment

so, it's all just a "Playstation VS Xbox" kind of thing

It used to be that everything in Linux was a file, ideally a text file, so if you could find the right file you could access or change what you wanted. Systemd is a big program that manages a bunch of stuff and creates unique commands within its programs for doing so, which moves away from that principle and turns system management into what feels a bit more microsofty (like the registry editor program vs editing config files, etc) and a lot of people don't like that. But to its credit, it does solve a few problems with cobbling together a modern system that doesn't suck.

Actually it doesn't really move away that much from the "everything is a file" principle. For example a "service" is a file describing how to properly start a particular service and if you enable a service, then a symlink is created to your service file, ....

As a Windows app developer, I wish Windows service management, boot control, and logging were more like that of systemd. What we have is so much more janky and Sisyphean to work with.

It used to be that everything in Linux was a file, ideally a text file

Yes? The entire Systemd configuration is done with files. With a very well defined structure called units that you can use to configure, boot, service startup, networking, containers, mount stuff, open sockets.... that's exactly the point Systemd provides a cohesive configuration file format for a system.

Yeah but I've interacted with it a lot and most of my interaction is commands sent through one of their programs. Versus scripts like init.d whose contents I can easily inspect and modify. Init scripts aren't config files, they're directly executable code.

Init scripts aren’t config files, they’re directly executable code.

Yes and that's exactly the problem.

Yes and no. Let me start by saying I use systemd and have never seen any of this as a problem big enough for me to switch.

The Unix philosophy is that a program should do one thing and do it well, the old init.d system did exactly that, but systemd does more than just start programs, for example there's the systemd-logind service which is used to authenticate users. Why is this a problem? Because some people don't want to use systemd, therefore they don't have logind, so if something were to depend on that, like GNOME's GDM did for a while, it would be impossible to use it without systemd. So in a way people complain about programs becoming dependant on systemd, and systemd grabbing more and more responsibilities to the point where it would become an integral part of Linux, it's not that systemd is a problem now, is that it has the potential to become so ingrained to everything that it becomes impossible to remove. But in the meantime systemd does provide some advantages, including parallelism which makes the computer boot faster.

Should you switch? Not really, this is more a philosophical debate on what Linux is and should be, I agree with all of the philosophical points and don't think programs should depend on systemd, but I don't think that's directly systemd's fault.