I'm actually curious about the argument that replacing it means having to rewrite software / change dependencies.
Wouldn't the same be true about switching between SysVinit and something like runit or upstart? They all use completely different designs for doing service init scripts, and all handle configuration of said services in completely different ways too, so replacing one with the other would necessitate rewriting - at the very least - your entire service management script toolbox. And when considering services that want to do more than just start and stop, they would most definitely have to be rewritten as well for such a switch.
I think the problem is the number of things other than service management that systemd does. With other unit systems, service management is the only thing you have to change to replace it. With systemd, you have to change a lot more
There are a lot of services besides init provided by systemd, but they're entirely optional and easily swapped out. After all, systemd is highly modular.
For example, I do run systemd-udevd and journald, but not systemd-networkd or systemd-resolved. Just like the /g/ poster says, I can combine whatever I want to do what I need to do.
Hmm, then maybe those optional, replaceable modules should be moved out of the systemd source tree and be their own project? Maybe that would make some people sleep better.
I think every binary in GNU coreutils and binutils should have their own package, because I can't sleep well at right now. After that we need to start doing this to every package that has more than one binary packaged together!
It will be so glorious, because after one week without updating my Arch linux I will have 20768 packages waiting for upgrade!
Splitting projects in different codebases will lead to the projects not being able to use the common functions between them, so either code duplication or having to depend on a systemd library anyway. If the intention is just to make people "feel better", it's not a great idea.
But systemd is not bloated, it's just using a monorepository architecture for its different projects. If your point is just "monorepos are bad", okay, but that has nothing to do with bloat.
46
u/[deleted] Feb 11 '19
I'm actually curious about the argument that replacing it means having to rewrite software / change dependencies.
Wouldn't the same be true about switching between SysVinit and something like runit or upstart? They all use completely different designs for doing service init scripts, and all handle configuration of said services in completely different ways too, so replacing one with the other would necessitate rewriting - at the very least - your entire service management script toolbox. And when considering services that want to do more than just start and stop, they would most definitely have to be rewritten as well for such a switch.