So,
I’ve never bothered with this before, since systemD seems to work just fine.
But I did this year stop using Ubuntu for most of my hosting needs and moved to Alpine or Debian, depending on what I’m doing.
So it makes sense to optimize even more. I read up a little about why people dislike systemD. Good reasons if mainly you’re worried that it’s doing too much and is too heavy.
So what are the alternatives that work with both Alpine and Debian? What are people using? Is it relatively easy to move from systemD to whatever is your alternative?
Thanks!
Openrc is used by alpine and gentoo. They both work great.
Runit used by void is also fine.
If you can figure out gentoo it’s not a bad OS but compiling can be slow. You’ll learn a lot though. Checkout oddlama/gentoo-installer
So what are the alternatives that work with both Alpine and Debian?
My opinion is that you’d be better off sticking to the OOTB init system that these distros provide, and hop to an entirely different distro that supports the init system you want/need. And for distros that do support multiple, stick to their guides carefully. Would save from a lot of incompat quirks and unsupported bugs, since these things can be as integrated into the main system as the package manager, if not more.
Conceptually though systemd can be a bunch. The s6 dev put out these definitions for the way he conceptually breaks down the entire init/service ecology into small pieces so have a look (ou may be interested in his full post explaining the motivation behind s6/s6-manager too). And since you’re on Alpine, see their plans for a future init system.
With that said you may wanna try out dinit on Chimera Linux. They’re one of the unique distros that offers this and some other cool things
I personally would just stick to systemd
It is heavy optimized due to how popular it is. You would save a few megs or ram but not much more.
Alpine already uses OpenRC. There’s no option to use systemd with Alpine.
Popular alternatives include runit (which Void uses), OpenRC (Gentoo and Alpine), s6, sysVinit, dinit. The suckless people have also written some suckless inits—I think one of them’s called sinit.
So what are the alternatives that work with both Alpine and Debian?
None. On Alpine you can only use OpenRC and on Debian you can only use systemd. Most distros don’t let you change out the init system. If you want systemdless Debian look into Devuan.
Judging from this post, I would say you should not be looking to change out your init system as, no disrespect intended, but you really don’t seem to know what you’re talking about. You don’t even know what init systems your operating systems (Alpine and Debian) are using, let alone the details of different init systems.
Some people have strong opinions about init systems. They are nerds with reasons behind those opinions. You don’t seem to have many reasons and you don’t seem to be particularly invested in the debate. I would say it’s not worth your time to change operating system (which is what you would need to do to change your init) just because you heard vaguely that systemd is bad. If you reach a point where init system matters to you, then you won’t need to be asking the questions you’re asking in the OP.
None. On Alpine you can only use OpenRC and on Debian you can only use systemd. Most distros don’t let you change out the init system. If you want systemdless Debian look into Devuan.
Fake news. On Debian you can use both sysvinit and openrc (I have six servers on sysvinit, tho I do actually intend to shift them to systemd later mostly because of the container management goodies).
Judging from this post, I would say you should not be looking to change out your init system
Mostly agreeing here. For selfhosting the init system matters barely any, since past the default distro setup one would be doing most of everything with Docker, Podman, etc. At that point, none of the usual Linux religious wars matter much (you can perfectl edit a compose file with nano).
On Debian you can use both sysvinit and openrc
Huh really? Then why does Devuan exist? (I don’t use Debian for context)
Because it was not always the case that sysvinit was supported - things were sorta “accidentally hazy” for a while. There was a time (I think during Debian 9 and 10) that systemd not only was the default, but was also enforcedly linked against a large part of the stack (you couldn’t have a desktop environment, PulseAudio or NetworkManager without systemd, for example).
This led to the rise of projects like Devuan, that provide a working system that installs without systemd by default; Antix’s
nosystemd
repo, which allows to install components of the Debian stack without the enforced systemd dependency; and laterlibam-elogind-compat
which aided shimming some of systemd’s requirements under elogind.Nowadays at least, the only hard part of not using systemd in Debian is 1.- switching (from or to) seems to require rescue mode and 2.- you lose some of the container management goodies (for eg.: Podman services).
PClinuxOS is a far derivative of redhat via Mandriva, itself Conectiva and Mandrake, both of them RHL (not RHEL) forks.
And it’s free of Systemd. And it’s rolling.
I use dinit with artix linux(for of arch).
Alpine already doesn’t use systemd
I kind of wish it did
I was using it for some VMs but OpenRC is so much worse and slower in many cases.
openRC
🔥
System V init scripts
Look out for OpenRC. Using it since forever and never missed systemd.
Plain script files, simple, just works. Unless you need any systemd advanced capabilities, OpenRC just rocks.
I’ve used Devuan before with decent success, I run it as a server on an ancient netbook with 1Ghz and 2GB RAM. Works pretty well, but bear in mind so much has become entangled with the expectations of systemd that as more packages get installed you may find things that break. As an example,
apt
gets an error every time it does anything because Mullvad VPN software has a configuration step that expects systemd functionality, and obviously that won’t work on Devuan. The program itself works fine, just have to start it a little differently, but it means thatapt
functionality always returns an error, which itself breaks any other scripts you may run that have steps that useapt
. I had to do a lot of manual patching for PiHole scripting to get that installed because every time it would run anything with apt it thought there was a showstopping error simply because Mullvad complained during apt configurations.22MB is too heavy???
Well S6 is lighter but I wouldn’t recommend it.
Gnu Shepherd is about the same but solid.
You can go much lower than that. I ran systemd on a system with 32mb of ram.
I ran sysvinit on a 4mb daily-driver machine forever. That’s not a flex; that’s just a comparison for bloat since sysvinit wasn’t using but a tiny portion of that. What the hell can lennart’s cancer offer at the cost of at least 5x the ram used by an entire OS and apps?
Well futex based high performance mutex support which is 400x faster than what existed back when 4MB systems were sold. A Constraint solver that doesn’t deadlock, support for a boatload of functionality that didn’t even exist back then.
And most of the size comes from -O3 compiler optimizations that didn’t exist back then and if you build with -Os it is about 512KB of a memory footprint which is smaller than SysV out of the box on Debian. So it is snappy on a 386SX with 4MB of RAM if you go the gentoo route.
People use SystemD because it works better than what came before it and it will be replaced when something actually better shows up. No one happens to have found a generally better solution yet.
OpenRC, Gnu Shepherd, runit and S6 are available for people who like them better but don’t assume that they are generally better for someone else’s use cases until you know what they are.
Why are you searching for a solution to a problem you don’t have?
There’s nothing wrong with systemd.
Wow.
It’s
- built bad
- … by the uncooperative
- … for the wrong reasons
- incredibly frail
- indivisible
- a logically incomplete and unsound replacement for everything it supplants
- the poster-child for bad ideas pushed into the mainstream with browbeating and gaslighting
I’m no systemd fan, but this is wacky.
The only part that is wrong TMK is the “indivisible” one; and perhaps the last item because I recall that PulseAudio and Wayland were pushed this way worse than systemd was.
It’s good to step out of your comfort zone.
Devuan is Debian with sysv.
They could have called it DeUwUan and it would have been perfect
I’ve done cron @reboot keep-one-running <mycommand> before (1)