▲ | const_cast 6 days ago | ||||||||||||||||||||||
The problem with the complaints is that they're all made up. Well, except maybe developer interactions - assholes can be assholes. systemd isn't opaque, it's open-source. systemd is objectively less opaque than init scripts, because it's very well documented. Init scripts are not. Sure, you can read them. But then you'd realize that glued together init scripts just re-implement systemd but buggier and slower, at which point you might as well just read the systemd source. Or, better yet, the documentation. systemd ALSO does not constantly change. The init system has been virtually untouched in a decade, save for bug fixes and a few new features. Your unit files will "just work", across many years and many distros. Yes, systemd is more portable than init scripts. systemd ALSO does not have any scope creep. Here, people get confused between systemd-init, and systemd the project. systemd-init is just an init system. Nothing more, nothing less, for a long time now, and forever. There is no scope creep, the unix principle is safe, yadda yadda yadda. systemd coincidentally is also the name of a project which includes many binaries. All of those binaries are optional. They aren't statically linked, they're not even dynamically linked - they communicate over IPC like every other program on your computer. systemd is also not complex, it's remarkably simple. systemd unit files are flat, declarative config files. Bash is a turing-complete scripting language with more footguns than C++. Which sounds more complex? | |||||||||||||||||||||||
▲ | simoncion 6 days ago | parent [-] | ||||||||||||||||||||||
> systemd[-init] ALSO does not constantly change. The init system has been virtually untouched in a decade... Sure, I'll bite. It'll be more interesting than watching some stupid Twitch streamer. Gentoo Linux was using OpenRC back in 2002. Looking at the copyright notice in relevant source files, it looks like OpenRC is a project that has been under development since 1999, so I'd expect it was in use back in 1999. However, I will use 2002 as the start date for this discussion because that's when I started using it. The simple OpenRC service file I mention in footnote 3 in [0] is syntactically identical to the syslogd service file added in to the OpenRC repo back in this commit in late 2007 [1]. The commit that appears to add support for 'command_args' and friends is earlier that day. So, four years before SystemD's experimental release, the minimal OpenRC service file (that I talk about in [0]) was no more complicated than what would become the minimal SystemD service file no less than four years later. What's more, the more-verbose syntax for service files written in 2002 was supported by 2007's OpenRC, and continues to be supported by 2025's OpenRC. 23 years is quite a bit longer than 15. > systemd is also not complex, it's remarkably simple. systemd unit files are flat, declarative config files. See above (and below). > Here, people get confused between systemd-init, and systemd the project. In that case, it doesn't do you credit to use "systemd-init" and "systemd" interchangably in your commentary. SystemD absolutely has scope creep. systemd-init... well, I think I remember when it wasn't possible to have it rexecute itself for a no-reboot upgrade of PID 1. And does it still have a dependency on DBus, or did they see sense and get rid of that? [0] <https://news.ycombinator.com/item?id=44945789> [1] <https://github.com/OpenRC/openrc/commit/3ec2cc50261f37b76e0e...> | |||||||||||||||||||||||
|