I think it’s largely a combination of curmudgeons that hate change and people who are strict Unix ideologues. SystemD, while being objectively better in many ways is a monolith that does more than one thing. This violates some of the Unix program philosophies (small programs that do one thing). The truth is that the script-based inits were terrible for dependency management, which is something that SystemD explicitly addresses and is probably one of its greatest strengths, IMO.
That’s very fair. Having managed system services for custom application stacks with hard dependencies on one another, that strength is worth it to me.
I don’t mean to come across as saying that the Unix philosophy is wrong. Just horses for courses. Systems where there is a likelihood of interdependent daemons should probably consider systemd. Where that’s not an issue or complexity is low, more Unix-like inits can still be a solid choice because of their limited scoping and easy modification.
Why do people hate systemd anyway? I’m not that tech-savvy but I’ve always used it and I don’t recall ever having a problem with it
I think it’s largely a combination of curmudgeons that hate change and people who are strict Unix ideologues. SystemD, while being objectively better in many ways is a monolith that does more than one thing. This violates some of the Unix program philosophies (small programs that do one thing). The truth is that the script-based inits were terrible for dependency management, which is something that SystemD explicitly addresses and is probably one of its greatest strengths, IMO.
On a side note, it’s systemd, no damn uppercase D at the end.
It’s the main strength, and for that it deserves praise.
For the feature creep that goes into it, and everything hard requiring systemd stuff (way beyond just the init system) just to start, no thanks.
That’s very fair. Having managed system services for custom application stacks with hard dependencies on one another, that strength is worth it to me.
I don’t mean to come across as saying that the Unix philosophy is wrong. Just horses for courses. Systems where there is a likelihood of interdependent daemons should probably consider systemd. Where that’s not an issue or complexity is low, more Unix-like inits can still be a solid choice because of their limited scoping and easy modification.
Again, init system is OK.
Suddenly logind, networkd, resolvd, timesyncd, and every other systemd subsystem is way too much inside the one supposed init system.