You are starting to understand why the systemd haters think like they do. If Poettering had proposed a drop-in replacement for SysV init and then stopped, I would have thought, "Why not?" But we got a hairball of event-logging, network management, file mounting, user authentication crap all bundled in.
- event-logging - a logging system tied to service management system not only makes perfect sense, but systemd's logging is able to capture logs prior to the startup of any event logger - i.e. the "old" way literally lacked the capability to log some things. And in the implementation systemd offers a way to dump all logs to the traditional logging system. ALL of them. I.e. even if you never want to touch the journal, its existence still makes other logging daemons better.
Can't say journald really works based on my very recent experience. Ubuntu did an upgrade to my 24.04 LTS system. When I rebooted after that all I got were black screens, not even a mouse pointer, which told me X wasn't running. I could ssh into the system just fine, which is why I could tell that the logs were worthless as there weren't any errors shown, or at least nothing about video just some apparmor warnings. Eventually I figured out that the upgrade broke the Nouveau (the OSS nvidia) driver. I'd been wanting to move to the proprietary nvidia drivers for a few games and so took this as a sign that now was the time. Once that driver was changed, my system booted normally. Yes, the upgrade created the problem, but the systemd logger was useless in helping me.
But what really sank it was when I discovered that it was relatively simple to launch SysV shell scripts from the unit files to start services, thus saving all the work involved in re-inventing the wheel.
That has to be the most ignorant text every talked about this topic. SysV shell scripts literally are each a re-invented wheel, over and over again. 100s of lines replaced simple instruction in units files that are barely 10 lines long. You complain about re-inventing the wheel while actively celebrating your ability to do it. It's completely daft. The fact that sysv shell scripts reinvented the wheel is *literally the reason so many distributions jumped on the systemd bandwagon* They were tired of maintaining 100 different unique wheels.
Nope, not ignorant but useful. You've already got a working wheel when systemd comes along with its strange unit file syntax that you have to look things up every time you have to work on it (because it's not like it's done it daily to keep it in one's mind). It's really nice to point the unit file to a shell script to start something ... a shell script that's really easy to run on its own and especially to debug, or at least I've never found a way to debug a unit file and get something as useful as what "bash -x $file" gives me.
BTW, creating a new init script wasn't creating a "new wheel". There was a template you could copy, fill in the unique parts, "ln -s" the "S" and "K" files in the proper "rc.d" dirs, and you were done. It was easy to understand and easy to do as an advanced user or a sysadmin, or the creator of a product that needed init files for new services.
A big reason so many distros jumped onto the "systemd bandwagon" is because distros couldn't get their act together and ignored the LSB. Let's not forget that systemd also did the LSB equivalent of putting files in common places so all distros started looking the same from a config standpoint. If there is a positive for systemd, I'll hold this up as their 1 positive. Anyway, this change allowed the distro to be able to share the unit files and so they were suddenly able to do less work. Why it took systemd to force this escapes me because they could have had it without systemd, but they chose to go their own way ... then again, why have a new distro except to go your own way, so I probably shouldn't be surprised at the "extra individualism".
If you want an OS that is becoming one giant EXE to dynamically load and run everything as a DLL, go use Windows*.
And yet no part of systemd is one giant exe. In fact the only thing systemd has combined into one is the role of xinetd with sysvinit. Literally everything else are separate optional modules.
Sigh, conceptually it is like a giant EXE even if it's made up of 70+ modules. Trying to replace a single 1 of them is pretty difficult. Last I looked, there are 3 modules you can't replace at all, journald being 1 of those 3. That being said, if I were to replace one, journald would be it; but at this point, it's not worth my time or the effort. I guess I've gotten used to standing in the muck that is systemd and if I really decide I don't want it in my life there are alternatives like Devuan.
Now, I just create a "/etc/init.d/boot.local" shell script, create a unit file to run it once at boot time at the end, then add shell commands to it to "fix" whatever needs fixing ... something that used to be trivial to do but is now harder because systemd makes me create a unit file.
AFAICT, systemd is really only useful for distro maintainers/providers. For the person who admins his|her own system and general system admins it's a PITA ... all IMO of course.