The reason why systemd has become so prevalent is not that it has been accepted by the community. It's that it has manpower. It is backed up by open source software companies that can provide much more manpower than developers like myself working on free software on their own time.
Sure but that is most open source programs. It is not the hacker doing it in their spare time. The majority of open source devs are working for a company getting paid to program it.
People have to eat.
From my own experience it was more about being a solution in search of a problem. I see some comments about how the old init system was so horribly broken, and yet the reality was it worked perfectly fine for all but some very niche situations. The only advantage I have ever seen with systemd is that it's very good at multitasking the startup/shutdown processes, but that certainly wasn't the case when it first arrived. For example I had a raspberry pi that booted in 15 seconds, and when I loaded a new image with systemd it took close to two minutes to boot. And there were quite a lot of problems like that, which is why people were so aggravated when distro admins asked the community for their thoughts on switching to systemd and then changed the distros anyway. This also touches on the perception that the "community" accepted it and moved on -- no, systemd was pushed on the community despite numerous problems and critical feedback.
But we're here now, systemd has improved, and we can only hope that some day all the broken bits get fixed. Personally I'm still annoyed that it took me almost a week to get static IPs set up on all the NICs for a new firewall because despite the whole "predictable names" thing they still kept moving around depending on if I did a soft or hard reset. Configuring the cards under udev took less than a minute and worked consistently but someone decided it was time to break that I guess.
Then maybe you can tell me what "attempting to do more" means, because the author of the article certainly didn't. Or why that's bad. My only take away is that the author thinks the system should facilitate the running of applications and just get out of their way already. But that sounds a lot like building a road network and then failing to install traffic controls because the DOT should just stay out of the way of traffic.
at least this guy recognizes systemd isn't (just) an init system
"it attempts to do more"
yeah. that's the point. that's a good thing. a single source of truth for system background services. background systems used to be a fucking mess and then systemd fixed it. this is why it is the de facto pid 1
I think if systemd were documented in a more consumable format (the man pages need better organization IMO) more people would see how powerful it is. Mounting directories with BindPath, and BindPathRO, Limiting systemcalls, socket activation and cgroup integration, and nspawn containers are features I can't live without.
I feel like a lot of people that get attached to the "It tries to do everything and it's against the unix philosophy" argument might change their minds when they see the tradeoffs. It has its problems for sure, but you get a lot out of it.
These days I don't even use docker containers for running services. I just put it in a systemd service and lock it down as tightly as I can.
It's powerfulness IS the problem. Some parts of systemd are great. Some are meh! Some really suck. But because it's monolithic, you can't take the good bits and replace the bad. You have to take it all or nothing.
That's the problem. Its architecture is offensively bad.
Honestly, it's 2024, and as a result, this post gives me a bit of a chuckle. For most purposes, systemd has won, and honestly, I hardly even notice. (Granted, I have only used Linux during the systemd era.) If systemd actually interferes with one's needs on a technological (not just a vague philosophical) level, little stops them from seeking out a way to use another init system.
Has it gotten more difficult to use other init systems these days? Yes. However, by the time a person has a problem where systemd can't do the job and have to use a different init system, they're probably more than competent enough to create custom services. I also feel like in terms of software support, only the most idiotic, worthless projects have no possible way to port hem to another init system.
Busybox init and openRC seem to be the alternatives. They are both useful in embedded contexts where you don't need much just a program to start a service
I may have misconveyed my meaning. I wasn't necessarily arguing that systemd has no viable alternatives. I meant to say that where systemd doesn't work (embedded systems being a good example), chances are the lack of support won't be a burden for a reasonably skilled user.
Yeah, was more poking fun of people who cling to the while Unix Philosophy stuff like it's some unwritten rule that must be followed.
I honestly think there's tons of Linux software that could be broadly defined as "multiple things".
Even looking at the links other responders have posted, I even think a lot of linux software is made up of components which are tightly coupled together.
SystemD has been such a frustration the last couple years with the wonderful simplicity and stability it used to provide managing a system completely out the door as its main development company (RedHat) has stopped giving any kind of a shit about being a positive force in the world. We all shoulda listened 10 years ago when the greybeards were telling us not to fall for an init system trying to do too much.
I've heard of s6 and runit alongside OpenRC as alternatives. I believe distros should make the init system agnostic of the rest of the software and not force users to stick with what they force them to do. Systemd is really slow.
What infuriates me more than distros playing the heavy hand in adopting it, are applications depending on it (I'M LOOKING AT YOU GNOME). This is completely unacceptable. If I find an application that doesn't work without systemd, I either compile it to see if it will work otherwise or give up on it.
Maybe my view of systemd will change if I delete all of the other binaries and just use the init module. Who the fuck decided to put a fucking log in manager with the init system???? This is the feature bloat that I'm talking about and I hate it
Maybe some day after we're done replacing X11 people will collectively find the will to do something about systemd before it gets too much worse. I wonder which will be easier: Throw it all out and start again, or split it up into parts of more manageable size with well-defined interfaces between them.
I'm pretty sure most people aren't even aware of systemd let along its alternatives. Linux and systemd go together like cake and ice cream. It is the standard.
systemd attempts to cover more ground instead of less
Have I got news for the author about the kernel he seems to have no issue with. (Note: I love the Linux kernel, but being a monolith, it certainly covers more ground instead of less, so the author's point is already flawed unless he wants to go all Tanenbaum on the kernel, too)