I’m curious to know why people use systemd-less distributions. Which one would you recommend to someone who wants to stop using systemd?
I don’t think systemd is an improvement.
Gentoo is not exactly a systemd-less distribution—you do have the option of installing it instead of going with the default (OpenRC). Personally, though, my Linux use predates systemd and no one has ever presented what I would consider a compelling reason for me to switch to it, so I install all my systems with OpenRC. I’ve reached a stage in my life where I dislike unnecessary churn in utility software.
From a less-personal standpoint, I consider the philosophy behind systemd to be wrongheaded (as in, it looks very much like Microsoft’s embrace-extend-extinguish—and no, I do not trust Red Hat not to be sold to someone who will take advantage). Many of the other reasons-not-to-use given by others here also ring true to me.
I do not trust Red Hat not to be sold to someone who will take advantage
They’ve been IBM since 2019.
Hardly any of the core systemd people work at Redhat these days. Microsoft employs more of them then Redhat. Right now I think Lennarts new company employes several of the key systemd people.
Contributions are comming in from all major distributions though.
And IBM could very easily sell them on, or the leadership there could change and decide to do something unpleasant (although I know IBM has a long history of being about as maneuverable as a parade float, it still could happen).
Because redhat/IBM are inherently evil and try to takeover FOSS as much as possible
Caviat: I use a distro with systemd. But these are generally the reasons people don’t:
Violates the Unix principle (that Linux has mostly inherited) that every program should do one thing only, and do that thing well.
Subsequent theorizing that the things systemd does could be done more efficiently.
Subsequent theorizing that allowing a single dev team, in this case, Red Hat, a US corporation aimed at enterprise use, to control a large chunk of Linux development could be a bad thing. There is some merit to this, as some applications require systemd specifically as a dependency.
The reality is that these systemd isn’t particularly inefficient, and no power moves from Red Hat have been made. Is this the absolute most ideal situation? Perhaps not, and I’m glad people are crafting other solutions. As of now, it does not factor into what distro I choose at all.
i use slackware. the init system here is extremely easy and simple. (mostly shell scripts)
i see no reason to use systemd on my machine. it’s an unnecessarily complex beast i can’t fully understand myself… i get it there’s some useful features included but i don’t need them. and i personally had issues with machines using systemd (waiting for some daemon to start with some timer going and hanging there, idk if it’s a config issue but it was a vanilla debian box with barely anything changed)
I’m the type of person who wants more systemd in my computer, but if I think the arguments for a systemd-less system are:
- Making sure that apps remain open and compatible with other init systems, so that if systemd turns evil there is a easy way to escape.
- Trimming and removing bloat that some people feel systemd provides.
- Testing out other init systems just for the fun of it, like distro hopping.
I’m the type of person who wants more systemd in my computer
Hear hear. A couple hundred more should do the trick.
bootctl busctl coredumpctl homectl hostnamectl importctl installkernel -> kernel-install journalctl kernel-install localectl loginctl machinectl mount.ddi -> systemd-dissect mount.mstack -> systemd-mstack mount.storage -> storagectl networkctl oomctl portablectl resolvectl run0 -> systemd-run storagectl systemctl systemd-ac-power systemd-analyze systemd-ask-password systemd-cat systemd-cgls systemd-cgtop systemd-confext -> systemd-sysext systemd-creds systemd-cryptenroll systemd-cryptsetup systemd-delta systemd-detect-virt systemd-dissect systemd-escape systemd-firstboot systemd-home-fallback-shell -> homectl systemd-hwdb systemd-id128 systemd-inhibit systemd-machine-id-setup systemd-mount systemd-mstack systemd-mute-console systemd-notify systemd-nspawn systemd-path systemd-pty-forward systemd-repart systemd-resolve -> resolvectl systemd-run systemd-socket-activate systemd-stdio-bridge systemd-sysext systemd-sysinstall systemd-sysusers systemd-tmpfiles systemd-tty-ask-password-agent systemd-umount -> systemd-mount systemd-vmspawn systemd-vpick timedatectl udevadm updatectl userdbctl varlinkctlMajority of these are separate utilities developed under systemd umbrella.
No, they aren’t. These are the binaries from THE systemd package , built from systemd releases, from THE systemd repo.
A single source tree looking like an “umbrella”, and an overreaching one at that, is THE point.
…so they are separate binaries
Systemd doesn’t require all of these to function. You can use systemd as just a init system
Share the content of the file
90-systemd.presetfrom your system.
What do you think about coreutils, util-li nux, findutils, god forbid iproute2? They all are binaries from THE mentioned packages, built from THE repo (have you heard of monorepos?) are they also overreaching and that’s THE point?
Your “separate utilities developed under systemd umbrella” claim was simply false.
Your attempted retort was even more funny, since many coreutils implementations can actually literally be built into a single binary with many symlinks, with dispatch done based on arg0. It’s even the preferred packaging option.
There are a lot of interdependencies within those source trees. Nothing is self-contained. So the “itz just monorepo bro” is also false.
they also overreaching and that’s THE point?
You literally just listed multiple projects 🤭, where their collective surface is also nowhere close the the systemd forced hegemony. Maybe they should all unite and join the “umbrella”.
Of course there are dependencies. They all are tools that do one thing well amd call into other tools to do thenthings those tools were built to do. E.g. many need systemd-init to function as that is the tool to manage the livetime of services running on the system.
It wasn’t because it’s true. They are literally separate utilities. Many is exactly two (i think) busybox and whatever the other one is called. For vast majority of people and in context it should be obvious that coreutils I was referring to is GNU coreutils, you are being intentionally obtuse. There are three, I believe, mandatory parts that fall under systemd umbrella everything else is either optional or separate. Interdependency angle is disengenious at best, programs can and have dependencies, it’s laughable that you think that they aren’t separate utilities because they depend on other utility.
Forced hegemony I’m dying lol.
Let’s play a game. Pick a “separate utility” from the list above, and let’s see if you know what you’re talking about, or just waffling.
I’m the type of person who wants more systemd in my computer,
Why? Don’t get me wrong, I have nothing against systemd and will continue using a distribution if it has it or not, it’s not a deciding factor right now. But I’m also no one who says “I want
moreof it” or the opposite "I wantlessof it`.I like ot when the software I use feels cohesive, and systemd has a whole echosystem of things that does things the same way. Like, I use quadlets to manage my home server’s containers the same way I set up mount points.
Making sure that apps remain open and compatible with other init systems, so that if systemd turns evil there is a easy way to escape.
Since systemD is open source, even if they do turn evil it could be forked from the last non-evil version, or another implementation could be made. I do agree with the other two points though.
Chromium is open source. Google is evil.
“Fork it, grandpa!”
That’s a false equivalence and you know it
No, it’s not. It’s a great equivalence, even.
I think you did a great job explaining it! I really liked my short time with void and would probably still be using I were more capable of setting up and maintaining a minimal distro
@HappyFrog @SwooshBakery624 I think the real fun (value) in not using systemd is much greater flexibility to mix and match different sub-systems and make the machine start up in the exact state you want it to, with just enough essential daemons.
The systemic reason people in general should use a non-systemd distro, is that systemd has too much control over the direction of Linux development and the developers are beholden to big tech instead of end users. This inevitably leads to bad outcomes as we see with Linus and AI the past few days even assuming everyone started out with pure intentions.
As far as the end user experience, there are some things that just assume systemd and you have to start bashing around and guessing from logs to get it running (eg Tailscale). Systemd is honestly a good user experience for new users and simplifies a lot of annoying tasks. It’s insidious.
I use Alpine Linux which uses OpenRC. For me, I like to understand how things work and SystemD is too complex for me. It’s presence discourages me from wanting to learn it because there are other things I would prefer to do with my time instead.
I really enjoy writing scripts and OpenRC is far easier for me to understand. I think Runit on Void might be even more simpler than OpenRC but I have no real experience with it. Alpine just happened to cross my path first.
I write a lot of POSIX scripts so portability is something that is important to me. It gives me the freedom to move around to different types of distributions whenever I want.
Also, without SystemD, I’ve learned so much about how Operating Systems work in a more low level and detailed way. I’ve always struggled with keeping hobbies so this has been a nice change. There’s always more to learn and it’s easy to get lost in all the logic puzzle pieces.
When I don’t feel like tinkering, I still have a copy of Linux Mint Debian Edition set aside as a backup. It’s base installation is simple, has everything I need and it just works.
I’m using Guix which uses Shepherd. It’s really nice if you’re comfortable with Lisp or Scheme/Guile to be specific.
To people wanting to move away from SystemD though, I’m personally partial to OpenRC. It’s not very complex at all. As for distros that use it, Void Linux comes to mind. I was also pretty comfortable daily driving Alpine Linux for a while. Both are very much “get out of the way and let me work” distros in my eyes.
Void Linux uses runit, not OpenRC though.
I use a wide variety of OSs both personally and professionally. Personally, FreeBSD has become my favorite as I love Jails. Being able to have a minimal number of simple scripts to manage tasks makes troubleshooting easier and helps stability (IMO). I’m also currently experimenting with Void Linux, expecting OpenRC to be similar in some ways.
Professionally, I tend to go with Systemd-based OSs (Almalinux is my favorite when possible), as I often need to spin up servers quickly and offload management to others. I’ve found that with Systemd it’s much easier to transfer this control as it is so ubiquitous now.
TL;DR: they’re different tools and different approaches can work best for specific scenarios.
I’m also currently experimenting with Void Linux, expecting OpenRC to be similar in some ways.
Doesn’t Void Linux use runit?
By default it does.
Is there an OpenRC package for Void? I thought that it only has runit and dinit in the official repo.
I pulled it from Github. Full disclosure, the experiment isn’t going well, but I’m determined to see how far I can take it.
I think some people are simply nostalgic for the Linux/Unix of yesterday. Systemd is a pretty big change to the system of established norms
With that being said, the strong suite of systemd is complex systems. For embedded Linux like buildroot and openwrt busybox init makes way more sense.
im not wild about it but im lazy. I guess its more that I like the way the init system worked. honestly im kinda like that with things that start feeling more like a database than simple text files.
I very heavily use systemd for containers and timers on my servers and main Desktop. I run Void on an X200, because trying to use thag Plattform today requires squeezing out every iota of performance improvements.
I’m still stuck on systemd because I’m a lazy coward, but I know Dave from You Suck At Programming uses void linux to avoid the horrors of systemd and he is a reasonably down to earth fellow and seems fine with it.
Dacctal is even more particular and opinionated about it and used to use ArchLinux with OpenRC, but he said he was moving to Gentoo not sure if that ever happened or if he landed somewhere else.
So there’s a few options.
you sound like me. Would kinda like to avoid it but to lazy.
Void linux and Alpine are KISS (Keep It Simple, Stupid)
while Arch become KAOS (Keep Astonishingly Overcomplicated, Stupid)











