Poettering and Systemd are amazing and Linux would not be as good as it is today without them. Whether you like it or not, we can't have a fragmented ecosystem and expect people and companies to adopt it (see the 14 competing standards XKCD). Having one solid base that works the same on every client is like literally the base requirement for making a product for the said client. Systemd, flatpak, xdg-portals, pipewire and immutable distros all solve this.
I'd like to propose a new rule for this community:
People criticizing systemd to the extent where they promote alternatives (regressions), have to provide proof that they have or are maintaining init scripts for at least ten services with satisfying the following conditions: said init scripts must 1.) be shown to reliably start up the services and 2.) not signal their dependencies to early and 3.) gracefully stop the services 99.9% of the time. People failing to satisfy these conditions are not allowed to voice their opinions on how arbitrary init systems are better than systemd. Violations of this rule will be punished by temporary bans and forcing the violators to fill the entire canvas of a blackboard with "'do one thing and do it well' is a unix principle, not a linux principle" in fine print.
More lines of semi-reliable init scripts have been written by package maintainers, than lines of systemd code by Poettering & Co, and that while achieving far less. The old init systems might have been simple, the hell of init scripts wasn't.
To me systemd is fine, I am not really emotional at init systems. But on the other hand Linux is about choice and systemd kills that in some way because it does so much more than just starting services. GNOME is unusable without systemd, which makes it a no choice if you go into another rabbit hole. It’s kinda weird how deeply systemd is integrated in Linux these days. What I really dislike is that the log is in binary format by default which makes it necessary to deal with another tool to read logs. But well software changes, so do tools. But honestly the devs acted like dick heads sometimes, so I think most of the antipathy comes from their behavior and well yes MS now kinda pushing systemd because poettering works for them. I have fear that MS forces the systemd devs to implement things you cannot simply opt out of because it is so tightly integrated. Maybe copilot for writing systemd unit files would be nice though :P
Kind of sad there are still people raging over systemd. When it flares up in discussions there is the usual debunked nonsense:
it only logs information to binary and this is somehow bad. Except it it can be configured to log to text as well and it uses binary so it can forward secure sign records to prevent tampering as well as offering database style query operations.
it's insecure because the repo has millions of lines of code. Except that they compile into hundreds of small binaries running with least privilege, and often replacing the task of far more dangerous processes (e.g. there is an NTP client in systemd which sets the time and nothing else).
various rants about the primary author
What is more bizarre is the nostalgia and hearkening back to sysvinit scripts when systemd didn't replace sysvinit! Systemd replaced upstart which replaced sysvinit. Because writing 100s of lines of script to stop/start/restart a process sucked - insecure, slow, didn't scale, didn't capture dependencies and everyone knew it. Upstart was the first attempt to solve the issue and was used in Debian / Ubuntu, Fedora / Red Hat, openSUSE and others until systemd came along.
You know, it's funny. I don't actually have much of a strong opinion on The Unix Way or Lennart Poettering, and I'm not super fond of Red Hat, but it's not like I'm going to avoid everything they're involved in the maintenance of and still use Linux.
I do like alternatives though, so I've been trying out OpenRC recently, and I gotta say I really like it. Of course there's a little bit of a learning curve, but honestly it's just simple and fast and stays out of the way, and it's nice to just open logs in any text editor I like. Systemd can do all kinds of crazy things, and if you need any of them then there's no reason not to use it, but I don't, and it's just kinda pleasant to have something nice and straightforward that I actually kinda understand instead.
I am fine with systemd. It works. It is more complicated than init.d
Before you copied some random file you edited and put it in init.d and it worked. Now you copy some systemd services file into systemd and run enable and start and it doesn't work because you don't know what you are doing.
I didn't know what I was doing in init.d too but now I have to learn systemd services. Once you know a bit it will work then (probably)
I mean I've briefly tried some of the modern distros that go without systemd recently, and honestly they just felt like I went back in time except they weren't even the same as then so I had no idea what I was doing without reading documentation that is imo much worse than the arch wiki.
And as a bonus fuck man pages as I can't in a pleasant way put them into my 1000s of categorized browser tabs for research and topic switching while being able to return without starting over.
Systemd really is shitty, and Poettering is a serious asshole; but that ship has sailed. It's time to accept that computers only get worse, and move on.