For example, I tried to config gpsd to use another port, nothing would work; systemd quietly overrides gpsd's configfile and required additional systemd incantations to change what should have been easy. And the man pages are a mess
And journalctl makes me want to pull my hair out; just let me grep a regular file - discovering namespaces is a nightmare
I'm also not sure how systemd could override a config file, because systemd does not write the unit files on a system. Wouldn't that be on the maintainer, distro, or other methods of getting the unit file?
To me its just more complexity, and not super consistent, which is fine for enterprise, or automation. I'm used to openbsd, regular shell init scripts go in /etc/rc.d, and my logs are in /var/log. Can't get much simpler than that, but i understand its limitations, and Linux is certainly more of a hodgepodge
Edit: found my notes, first was discovering the "gpsd" & "gpsd.socket" namespaces existence, then needing to do "systemd edit --full gpsd.socket" because without "--full" it makes an override file that didn't actually override anything...my note quality declined rapidly after that due to anger
ls has more flags than a Soviet military parade.
Some programs can crash when all their files are suddenly swapped for new ones. I've seen multiple linux systems bork themselves during an update because the update itself caused the desktop session to crash, which caused the update process to be interrupted just as it was modifying some crucial files, thus rendering the system unbootable.
Completely untrue.
And before systemd, updating sshd or cron usually meant restarting that one daemon. With systemd, core updates can affect PID 1, logind, journald, udev, user managers, socket activation and cgroup state as one dependency graph.
Before, its was replace a library and restart the few daemons using it. Now the same library may be loaded by system services, user services and systemd components, making a clean partial restart harder to verify.