Live data from Hacker News

Linux distros without systemd

ungleich.ch

311–320 of 449 posts

Re: Linux distros without systemd

#311

Earlier quoted context omitted.

> systemd monoculture As someone who really wanted the BSDs to get more credit ~20 years back, and spent a fair amount of time on various commercial Unixes as well, I find that phrase rather amusing. Historically poor standardization of the userland aside, GNU/Linux is the poster child for monoculture in Unix, and has left a whole lot of dead or dying software in its wake.

I've decided to migrate my Linux boxen to BSD (this is a long-haul project that will take me a year or more, I estimate). In part because systemD itself really made me aware of the issue that you're raising.

Which BSD, may I ask? I’d personally recommend OpenBSD, for code quality and “it just works”, but there’s a lot of really interesting BSDs that are even more obscure (Dragonfly, Debian and Gentoo using BSD kernels, etc) aside from FreeBSD and NetBSD.

Re: Linux distros without systemd

#313
post #195

Earlier quoted context omitted.

sysvinit is easier to understand for me. It's just a bunch of shell scripts after all. So from the point of simplicity sysvinit wins for me and I never had much problems with it (while I had some problems with systemd). On the other hand, I recently had to write unit file for tomcat and it was extremely easy, systemd had all necessary options. Writing shell script was not that hard, of course, but it was some work.

One reason even big ol sysvinit is superior to systemd is that shell scripts are transitive knowledge. You can do almost everything with shell scripts. Learning some obscure (albeit very simple) systemd unit file format won't help you anywhere else besides systemd.

> One reason even big ol sysvinit is superior to systemd is that shell scripts are transitive knowledge.

In theory. In practice systemd's actually much more transitive since many distros have adopted it and systemd services tend to work cross-distro, so once you learn systemd you can somewhat confidently manage Fedora, RHEL, Ubuntu, Arch, SuSE, Nix etc.

sysvinit shell scripts often differed in subtle ways between distros and the particular distro implementation was rarely transportable without quite a bit of work.

> You can do almost everything with shell scripts.

This cuts both ways. I'd argue the problem with sysvinit was precisely the fact that you can do almost everything with shell scripts, since now you're executing a script as root that can do almost anything, depends heavily on the bash abilities of the author to not introduce subtle bugs, or break easily, (which varied heavily from script to script and distro to distro), and to not be a security nightmare.

Re: Linux distros without systemd

#314

I get that not everybody likes systemd, but a lot of the criticisms seem misguided and looking at sysvinit with role-colored glasses. For example, people are complaining about logind being included, but forget that consolekit was unmaintained before that. Yes, there's parts to systemd that not everyone will use, like container support, but in that case you can pretty safely ignore that use case. For me, systemd has p…

I am not in any camp.

I do think that systemd is very useful but have concerns that they simply don't have the man power to maintain that broad feature set and scope they have set themselves.

What previously would be done in multiple different competing projects by different people with different ideas in different companies, is now done in a single code-base. I can imagine that innovation will be hindered that way, because systemd is not Linux. But maybe some day it will be, IDK. Currently it is just to big to scale that well to small systems though.

Re: Linux distros without systemd

#315

Earlier quoted context omitted.

I am not a systemd skeptic, but I'm also not somebody who cares that much. (Which might seem at odds with this thread, but I'm in a lot of meetings today. ;) I use it and it gets out of my way. For me, it's fine. I'm not qualified to judge the quality of the code in systemd directly; I've browsed it a little but I am a middling C++ programmer and while it hasn't stood out to me as smelly I would defer to more knowled…

> I don't think there's a great solution aside from "build your own ecosystem and don't let it get capitalism.txt'd to death." I do, it's "if you run a big mainstream distro like Fedora or Debian, let your users swap out init systems". I know there have been debates on this, and I know the general consensus is "it's not worth the trouble / it's not as simple as just swapping out something like systemd". My counter ar…

To that I'd just go "sure!", but I'm just a guy. The first thing that jumps out to me, though, is the question of who pays for the doing of it and the testing of it? From what I know (and I've been learning a lot today, it's been productive!), it seems like you're likely to undertake a Devuan level of effort to do it with Debian, and your patchset is going to be so broad as to effectively fork the core anyway. Is there value, then, in tagging along with that major distro? What do you get, then, if you're the second-class citizen? I'm reminded of stuff like Kubuntu, which (and I say this as a long-time KDE fan) has historically limped along with only moderate love--and that's a DE, it's a lot easier to handle DE differences than core init differences, service management differences, etc. (We have the XDG standards and the like, after all. Though I guess, in a certain light, systemd's trying to be XDG-for-the-core, which attacks the question we're looking at directly, yeah?)

The other thing that jumps out at me is just that this hypothetical is mostly kicking the can down the road. If Fedora suddenly decided to support multiple init systems I think it's hard to envision a future where the happy path wouldn't remain systemd; it's what the core folks think is best, otherwise they wouldn't use it now, and even with additional support the lion's share of attention would go to that happy path. To that end I think that any sort of init choice in those distros just becomes "so we'll support it for now, but the set of third party stuff that supports it is going to continue to shrink, so I hope you have an off-ramp in the future."

Between these two issues it seems like separate distros that have a firm commitment to not-systemd end up being necessary anyway and an ecosystem of not-systemd stuff will need to compete for value on those merits. What am I missing?

Re: Linux distros without systemd

#316
post #29

Earlier quoted context omitted.

Do you have a source for it?

In 2017, the Linux Kernel had over 450 CVEs, while systemd had 5. https://www.cvedetails.com/product/47/Linux-Linux-Kernel.htm... https://www.cvedetails.com/vulnerability-list/vendor_id-7971... So far in 2019, the gap has narrowed: "only" 45 CVEs so far for the Linux kernel, and 7 for systemd.

As marcosdumay said upthread, “Systemd has a historic of refusing to fill CVEs, even for incredibly bad vulnerabilities.”

This contributes to the low rate of CVEs in systemd relative to Linux (for which many less-important bugs get CVEs).

Re: Linux distros without systemd

#317
post #314

I get that not everybody likes systemd, but a lot of the criticisms seem misguided and looking at sysvinit with role-colored glasses. For example, people are complaining about logind being included, but forget that consolekit was unmaintained before that. Yes, there's parts to systemd that not everyone will use, like container support, but in that case you can pretty safely ignore that use case. For me, systemd has p…

I am not in any camp. I do think that systemd is very useful but have concerns that they simply don't have the man power to maintain that broad feature set and scope they have set themselves. What previously would be done in multiple different competing projects by different people with different ideas in different companies, is now done in a single code-base. I can imagine that innovation will be hindered that way,…

That's a valid concern, but it's worth noting that not every component systemd replaced, (ie consolekit), was actually being maintained, so arguably we're in a better situation now from that standpoint.

Re: Linux distros without systemd

#318

Earlier quoted context omitted.

This is always the case with any new software. Things may get a bit worse before they get better. Honestly Systemd addresses the complexities of a modern system in the simplest fashion but no simpler, and that is the key. It is in the same spirit as launchd on macOS. It works well overall and end up being more portable and consistent in the long run. Hatred for it seems to come mostly out of dogma, something to be av…

launchd doesn't break nohup. It doesn't have any opinions about processes started from shells. systemd does, which is completely inappropriate scope creep.

you know in a system with a gui where multiple users are working it's really really stupid to keep a process running?!

Re: Linux distros without systemd

#319

I have way too many cases of systemd startup items hanging with their timeout for no good reason. Worse, my most complicated high-uptime machine usually does not shut down in a reasonable time. Systemd says "waiting for session user cracauer" (something like it) for whatever reason. It also hung on undoing swapspace, when that swapspace was a custom stack of block layers. I don't need swapspace to be "shut down". It…

I've struggled with, and am still struggling with, units hanging on shutdown. It's my biggest complaint with systemD aside from journald eating its own logs.

I've been using magic SysRq to force hanging units to quit. SysRq + e sends SIGINT to all processes, and SysRq + i sends SIGKILL.

Re: Linux distros without systemd

#320

Earlier quoted context omitted.

I currently use Debian on everything except my R-PIs, where I use Raspbian.

New installs of Debian use systemd by default. Systems which were upgraded from older releases may be grandfathered in to SysV init.

Systems which are freshly installed and want to change to sysvinit can do "sudo apt install sysvinit-core".

Or they can try out runit, openrc or nosh, if they feel adventurous. The last one is not yet in Debian proper.

Post reply on HN