I’ve gotten into quite a lot of systemd-related flame wars so far, and what strikes me is that I haven’t heard a single reason why systemd is good and should be used in favor of openrc/sysvinit/whatever. The only arguments I hear in favor of systemd, even from the its diehard defenders, are justifications why it’s not that bad. Not once have I heard someone advocate for systemd with reasoning that goes likes “Systemd is superior to legacy init systems because you can do X much easier” or “systemd is more secure because it’s resistant against Y attack vector”. It’s always “Linus says it’s allright” or “binary logfiles aren’t a problem, you can just get them from journald instead of reading the file”, or “everyone already uses it”.
When it comes to online discourse, systemd doesn’t have advocates, it has apologists.
I’ve gotten into quite a lot of systemd-related flame wars so far, and what strikes me is that I haven’t heard a single reason why systemd is good and should be used in favor of openrc/sysvinit/whatever.
“Hi I’m new to Linux, I switched from Windows to Alpine Linux and my laptop’s battery life has gone from 6 hours to 30 minutes before needing a charge.”
Linus had an epic flame war with the systemd idiots for breaking Linux stupidly: https://igurublog.wordpress.com/2014/04/03/tso-and-linus-and-the-impotent-rage-against-systemd/
He didn’t do anything because he made it clear he owned the kernel and userspace was someone else’s problem, but also that the systemd guys were absolute morons who were a danger to themselves and everyone else.
Well, I’ll tell you that I prefer systemd because I can comprehend its declarative unit files and dependency-based system a lot better than the shell script DSLs and runlevels that I’ve had to mess with in other init systems. systemctl status
has a quite nice output that can be really handy when debugging units. I like being able to pull up logs for just about any service on my system with a simple journalctl
command instead of researching where the log file is.
Thank you for the detailed response, very informative. You make a really good point about centralized logging, I can see how that can be very helpful when you run A LOT of different server process on one machine. I get centralized logging as a bonus of running everything in Docker, but I can see how it is nice to have logging as part of the init system if you want to run a lot of services natively.