Replacing Systemd with OpenRC in Debian

(danielcordova.me)

48 points | by nogajun 2 hours ago

14 comments

  • INTPenis 24 minutes ago
    Systemd resistance is silly to me. Systemd is what is turning Linux into a viable modern OS. You need something to tie all the parts of the OS together with a unified API, otherwise you'll be fighting fragmentation constantly.

    I don't like the age verification thing either, but all systemd did was add a field for it, it's still up to your distro to use it.

    • wolvoleo 23 minutes ago
      Fragmentation is what makes Linux great imo. I'm not against systemd per se but I am against monoculture.
      • lukan 18 minutes ago
        And what are your thoughts on deploying software to a fragmented system?
        • graemep 3 minutes ago
          Systemd does not solve the deployment problem, and will not unless it adds something like a systemd package manager.

          It is interesting that Linux is far more widely used than alternatives that are not fragmented (e.g. FreeBSD) and has not standardised on one distro. Different people have different needs and preferences. People using Debian, Alpine, and NixOS are unlikely to agree on what they want.

        • prmoustache 4 minutes ago
          You define the supported target and that's it. RHEL and Ubuntu LTS, kubernetes, docker/podman or flatpak are popular ones.
        • wolvoleo 12 minutes ago
          Just like it's done now, every distro having their own system. It containerization for people who like that.

          What I have an issue with is apps making themselves dependent on systemd like KDE is doing. https://www.reddit.com/r/kde/comments/1qi9vo5/comment/o0pzvq...

      • yoggodoggo 18 minutes ago
        The Linux Kernel is a monolith.
        • prmoustache 14 minutes ago
          The linux kernel is only the kernel though. MacOS is not XNU.
        • wolvoleo 12 minutes ago
          That's not what I mean.
  • 0dayz 8 minutes ago
    To this day I have not found a single modern argument against systemd that is a technical one (I tried systemd but it does not support x which openrc does), instead it's these vague bike shed arguments (Unix philosophy, anti-centralization and "bloat" ).

    I can't wrap my head around it, since those 3 are a "you" problem, systemd is just a service manager it's you who decide to use other systemd parts.

    • LtWorf 0 minutes ago
      I found a few bugs where journald was losing data for example. I reported them and they got fixed in later releases.

      Of course I still got called a neckbeard and got told that I didn't like systemd because I'm a dinosaur and so on. So I have a really hard time to take positions such as your seriously to be honest.

  • mid-kid 1 hour ago
    Tbh, the installer was inevitable after systemd integrated a bootloader, crafted a paritioning scheme for autodiscovery, took over user and home directory management, and topped it off with an updater and "system extensions" layering system that some immutable distros are using.

    I'm not saying any of this is particularly bad but it's been very clear fot a while that systemd just wants to be an OS. With immutable systems the "distribution" part of it is reduced to a build system, and everything else can be provided by systemd and flatpak.

    • s_ting765 9 minutes ago
      [delayed]
    • mort96 36 minutes ago
      The various Red Hat affiliated projects have so much more reason to call themselves the "OS" than GNU at this point. A Linux system with systemd for the init, systemd-networkd and NetworkManager for networking, GNOME for the desktop, systemd-boot for the bootloader, RPM/DNF as the package manager, etc. probably contains orders of magnitude more Red Hat code than GNU code even if the system uses glibc and GNU coreutils.
    • d_tr 39 minutes ago
      Can't these features be toggled?
      • mort96 34 minutes ago
        They're separate programs and system services which all more or less just do their own thing, just developed under the systemd umbrella. So it can't be "toggled", you can just not use the parts of systemd you don't want.

        But it's meant to work as a cohesive system when everything in systemd is used together.

        FWIW, I think it's great that someone is trying to make a coherent set of system services for Linux. Things tend to interoperate better when they're explicitly written to work together than when every component is meant to be hacked to work with arbitrary other services through shell script soup.

        • bayindirh 25 minutes ago
          It's great that the same someone has formed a company called Amutable which has the sole purpose of converting Linux to a locked-down immutable OS where the users doesn't have the key.

          Also it's interesting that a set of simple interfaces have worked for so long. Maybe they did something wrong that it didn't break?

          See: https://www.amutable.com

  • hks0 15 minutes ago
    I have a curious question. My local setup has worked for me for ages ever since arch decided to switch to systemd. Same on the servers I deal with, after Debian's switch. At the same time, I can say I'm not involved with inner workings of a Linux system enough, to be affected by init system change and the pain it might bring.

    In other means consider me an average Joe of the Linux world.

    Hence this question: If it sucks so much, why did it become so widespread?

    • gf000 1 minute ago
      It doesn't suck, people are just emotional beings and have some "football team" level takes on technical stuff as well.

      The very same people that hate systemd for "being a monolith" and limiting choice are usually also love X and hate Wayland where they can manage to explain how being a monolith is suddenly good.

      Especially that systemd is pretty modular - at least the actual systemd program running as PID 1. It also refers to a project with many optional modules running under the same name, but that's like KDE having a file manager and complaining that plasma DE is a monolith.

  • jdw64 16 minutes ago
    I mainly use Ubuntu, so I know about systemd, but what is OpenRC? Why is there such a split, and why are people arguing about it in the comments? Could someone kindly explain it to me?

    I only know how to control Linux through systemctl, and I don't know much beyond that. It seems like the components are different, but I'd appreciate it if someone could explain it to me.

    • opem 2 minutes ago
      why don't you try searching on the internet?
  • ChocolateGod 34 minutes ago
    This makes the mistake of confusing systemd the service manager and systemd the project. This is an easy mistake to make given they have the same name.

    The systemd service manager does not have an installer, systemd-sysinstall is a separate tool that's part of the systemd project.

    > systemd already integrated it, why (age verification)

    systemd has not integrated age verification. All that's been discussed is a simple field to allow a user to register a DoB and an way for services to validate the user is over a certain age.

    You could arguably already do this by having a DoB field for the user, but that'd involve giving applications your full DoB which I'm sure is distasteful for many.

    > usual "fight" against non-sense laws

    Because developers have to follow laws like everyone else?

  • atmanactive 1 hour ago
    I'm confused... isn't Devuan exactly this?
    • _flux 56 minutes ago
      Devuan us a separate Debian with its own repositories (and presumably many packages patched to improve systemd-less life), while this is just replacing Systemd with OpenRC on a Debian system, while keeping Debian repos etc.
    • shevy-java 31 minutes ago
      Well - it is an alternative to debian and in many ways is debian. But the counter-question is: why should debian users HAVE to use systemd? This is a much more fundamental question. Devuan solved it via forking. I think the proper way to handle this is to be able to offer both. I think gentoo went that approach. Debian went the "my-way-or-the-highway" route, which objectively is worse, even if understandable (less to maintain; see LFS/BLFS submitting to systemd finally in 2026: https://old.reddit.com/r/Gentoo/comments/1qy4xsc/might_gento... and https://www.phoronix.com/news/LFS-Dropping-SysVinit)
      • muvlon 1 minute ago
        FWIW, debian did the gentoo approach for years. I used to run debian with OpenRC during a time when systemd was already the default. It and other init systems remained fully supported by the distro for quite a while.

        Eventually, the pain of supporting everything became too much and debian did go with "my way or the highway", which I supported at the time and still do. I have no idea how that could be "objectively worse", it's very obviously a tradeoff to me. If your packages have to work on any init system, they can not benefit from any particular init system's features and have to work with the lowest common denominator. Every service has to hack around the lack of working state management with pidfile hacks and such.

        In my opinion, it's better for a distro to pick any single init system than to try to support them all by limiting all packages to SysV style init scripts. Yes, user choice is important, but that can and does happen via distro choice. Alpine or Devuan are right there if you need them. Linux is fragmented enough, we don't need every distro to be a microcosm of the fractured overall Linux landscape.

  • lousken 1 hour ago
    Just install devuan?
  • HackerThemAll 21 minutes ago
    Not long in the future we'll have "Systemd Linux".
  • globular-toast 1 hour ago
    I find it fascinating how different people are with respect to being able to see the future, or at least caring about it. I find many people are like lumbering beasts in a forest complaining when a twig pokes them in the eye. While other saw the forest from miles away and just went around it.

    Gentoo is still home to a sizeable number of users who noped out of systemd more than 10 years ago. This is exactly the kind of thing they saw on the horizon. Why does it take others so long to see the same thing?

    • rcxdude 46 minutes ago
      >Why does it take others so long to see the same thing?

      What thing, exactly? To me systemd has done what it has set out to do and I quite like it for it (not that it's perfect in every respect, but it's in general a welcome improvement on what came before it, especially in terms of consistency between distros instead of a million arbitrary differences). It's also important to note what systemd was offering to distro maintainers, as well. It substantially reduced the work involved in creating and packaging for a distro (though probably only Arch, which is explicitly a distro by and for the maintainers, really said that part loudly).

    • adrian_b 23 minutes ago
      I am one of the happy Gentoo users, who have escaped from systemd until now.

      Some years ago I have experimented with systemd for a month. However I have encountered an ugly bug and eventually I wiped it out.

      The problem was not that there was a bug, I assume that the bug must have been solved years ago. The problem was that the bug was not something that could be attributed to a random error, like a cut-and-paste error when editing. It was a bug that in my opinion demonstrated extremely poor judgment in the overall software system design. Thus I considered that the bug was too outrageous and I blacklisted systemd.

      (The bug consisted in that the computer, could fail to shutdown, randomly, due to a race condition regarding messages sent on D-Bus, messages that were generated for some reason by systemd while shutting down, when the recipient of a certain message could have been killed before receiving the last message intended for it, or the D-Bus daemon could have been killed before the last attempt of a message transmission, which resulted in a stall. The fact that sending and receiving messages on D-Bus was necessary for being able to complete a shutdown, was in itself a proof of stupidity. In decades of using computers, from IBM mainframes and DEC minicomputers, until the latest computers of today, only with systemd I have seen a case when shutting down a computer could fail. Moreover, even when successful, shutdown was very slow, unlike the instant shutdown with which I am accustomed. For decades my computers have been optimized to boot in a few seconds, by using custom kernels, so the supposed fast boot of systemd had not brought any improvement in my case, while the shutdown was degraded.)

    • matheusmoreira 34 minutes ago
      I enjoy using systemd but I'm glad Gentoo exists and I'm thankful that people are using and maintaining alternatives. Diverse ecosystems are not just good, they are necessary.
    • simoncion 52 minutes ago
      > Gentoo is still home to a sizeable number of users who noped out of systemd more than 10 years ago.

      As a Gentoo user for the past ~quarter-century, I'd say that it's more that -unlike Debian- Gentoo has been using a system service manager that's way better than the classic SysV init for approximately forever.

      The early discussion of systemd-as-init [0] was pretty much 100% focused on how much better systemd-as-init was than classic SysV init. When restricted like this, systemd-as-init is an obvious winner. But, when you consider other init systems -such as OpenRC- that provide a bunch of useful scaffolding and support tools (rather than demanding you reimplement all that yourself) the benefits of using systemd-as-init are far less clear.

      I've mentioned this before in an HN comment or two from way back when, but I'm really mad at myself for not recognizing how extremely important the "What should Debian adopt to replace the incredibly ancient SysV init?" discussion was and failing to take part in it. OpenRC was knocked out of contention for reasons that were never really clear to me, and I'd have loved to put a bunch of time and effort into fixing whatever deficiencies the Debian folks believed made it unworthy of consideration.

      Oh well.

      [0] ...as well as some-to-much contemporary discussion...

      • JdeBP 22 minutes ago
        The OpenRC people in Debian only really noticed the discussion when it reached the technical committee. There was an effort to put OpenRC into contention, and all of the technical committee people who did evaluations included it in their evaluations. The problem was that OpenRC as it existed on Debian at the time was lacking. People argued that it could with a little work do the things that the technical committee people pointed out, but the counterargument was that the decision really had to be made at that point, given the argument that had built up. I do recommend reading the discussions by Russ Alberry and others about OpenRC on the technical committee mailing list back then.

        Yes, everyone who has, in the succeeding 12 years, framed this as a choice between van Smoorenburg init+rc and systemd either didn't pay attention or is being woefully slapdash. Debian's choice was between Upstart, as established on Ubuntu at the time, and systemd, with OpenRC as a late entry.

        * https://jdebp.uk/FGA/debian-systemd-packaging-hoo-hah.html

        Interesting tidbit:

        People also made the argument that van Smoorenburg init+rc could be fixed. And in fact they did address some of it, The same year (2014), the sprawling shell scripts so characteristic of van Smoorenburg init+rc were being replaced by a new system, modelled somewhat after Mewburn rc on NetBSD and FreeBSD, where the scripts were much shorter, largely declarative, and reliant upon a new init-d-script interpreter that did all of the repetitive common stuff.

        * https://unix.stackexchange.com/a/480897/5132

        * https://manpages.debian.org/trixie/sysvinit-utils/init-d-scr...

      • dijit 44 minutes ago
        Yes, exactly.

        "Systemd-vs-SysV" was never the concern for me personally, it was always "Systemd as the last init we ever create" based on how it's being built, and I always tried to argue that it was a hard pill to swallow because there were already better foundations in the world (SMF, for my favourite example), people didn't want to have that discussion, they just wanted to talk about how bad SysV was and that systemd was progress... I was impeding progress...

        But, we're here now, and replacing systemd at this point will require being API and bug compatible or else major software (like GNOME) won't run at all.

        So, systemd is the last init we'll ever have, just like I feared.

        • simoncion 24 minutes ago
          > "Systemd as the last init we ever create" ... they just wanted to talk about how bad SysV was and that systemd was progress... I was impeding progress...

          Yeah, that rhetoric was maddening. Poettering and crew were -and continue to be- absolutely incapable of maintaining a project of such scope and importance.

          Do you remember the fucking kdbus saga? I really wish the folks on the kernel side of that who were responsible for asking careful, technical questions, thinking deeply about the answers that they got, and cutting through the bluster and misdirection they received had been the ones in charge of deciding the new Debian init system for... Jessie, was it?

          > But, we're here now, and replacing systemd at this point will require being API and bug compatible or else major software (like GNOME) won't run at all.

          I've heard from many folks who have tried to reimplement substantial parts of the SystemD. [0] They report that the documentation is woefully inadequate, the interactions between components get incredibly complex, and the project maintainers have a habit of breaking things whenever they feel like it. This breakage doesn't matter to things they maintain, because they can make changes to account for it... but for "out of tree" reimplementations, well, they are -perhaps correctly- entirely disinterested in worrying about those.

          > So, systemd is the last init we'll ever have, just like I feared.

          Eh. I still hold hope that Debian or some other major distro will notice how unsuited the SystemD maintainers are to long-term stewardship of something so wide-reaching and critically important and cast about for alternatives. We'll see.

          [0] This is a shorthand for "Systemd Project", not a slur against it. It sucks that systemd(1) and the project that contain it share the same name. [1]

          [1] For a real-world example of the sort of conversation this confusion causes, check out [2]

          [2] <https://news.ycombinator.com/item?id=48716382>

    • LtWorf 57 minutes ago
      Because if you dare criticise or say "I encountered a bug" the mob will get you.
      • simoncion 35 minutes ago
        This is very poorly phrased, but, yeah, I've found both the SystemD [0] maintainers and boosters to be very, very unwelcoming to claims that the way something in the SystemD does something is incompatible with a totally reasonable and long-standing way to use a computer.

        As I've mentioned elsewhere, SystemD is great... until you hit a bug born of its accidental complexity, or you find can't do something because the SystemD maintainers -sometimes suddenly- decided that they didn't want to let people do it anymore.

        [0] This is shorthand for "The Systemd Project", not a slur against it. It sucks shit that systemd(1) and the project it's part of share the same name... it's very confusing. [1]

        [1] For a real-world example of the sort of conversation this confusion causes, check out [2]

        [2] <https://news.ycombinator.com/item?id=48716382>

    • shevy-java 25 minutes ago
      Gentoo is great from a philosophy point of view.

      From a practical point of view, though, Gentoo kind of struggled a lot. Archlinux kind of took away a lot of the user base here and I don't think Arch is necessarily worse than Gentoo, even if Gentoo may still be better due to offering more choice, which is also true. I myself fell victim to the GoboLinux philosophy, so versioned AppDirs are the only logical way to install something (I don't use the GoboLinux naming scheme though, my naming scheme is simpler, but also flexible, e. g. I could use /pkg/htop/3.2.1/ as example, even though I opted for e. g. /home/Programs/Htop/3.2.1/ instead, just feeling nicer to read).

      > Why does it take others so long to see the same thing?

      People will have different opinions. Many bought into the pro-systemd advertisement without challenging it ever. Over the years this has also changed, what with the more recent "we love age sniffing" code change to systemd, but even still people don't want to think on their own. They like to adopt what is given to them as an opinion. If you look back in history, many articles about systemd were clearly written by a systemd developer. Naturally these are very biased articles.

  • mkesper 49 minutes ago
    You do not have to use all resources that are under the systemd umbrella. That's just BS, sorry. And prod deployments breaking... Well I guess that never happened with those best-managed sysv init scripts? Guys, pick your fights reasonably.
    • benj111 21 minutes ago
      There's only the optionality because of the pushback though.

      One element of the free software culture is pushback against monolithic software. It allows you to swap out components in this way. Without that culture there wouldn't be the choice. You could disagree with a particular manifestation of that culture, but at least understand and accept that culture and accept that the reason why you perceive this to be a non issue is precisely because of that culture.

    • shevy-java 29 minutes ago
      Agreed. But you still need to know what to enable/disable, so more complexity is the outcome.

      > And prod deployments breaking... Well I guess that never happened with those best-managed sysv init scripts?

      Which of these two has the larger surface area? I would assume there are more problems in systemd simply because it has a lot more code.

      > Guys, pick your fights reasonably.

      I don't see what is not reasonable here at all. Can you explain this? In particular I would like to see your explanation how more code means less issues, all other things considered being equal. And that's just the code - there are many additional issues, documentation, maintenance and so forth.

    • ErroneousBosh 47 minutes ago
      I've never *ever* broken a production system by reconfiguring a sysvinit service, at all, no no no, not me...
  • ErroneousBosh 48 minutes ago
    Interesting that it's kind of that simple. It looks almost like you could make a fairly straightforward fork that works with that, as long as they sysvinit packages are kept up-to-date.

    I have to say while I dislike systemd it hasn't annoyed me enough to send me down that route yet.

    • shevy-java 23 minutes ago
      How about age sniffing though? :)

      https://github.com/systemd/systemd/pull/40954

      Granted, this is not quite a thorough age sniffing requirement yet, but with the legislation in the USA and other countries currently changed, the operating system is de-jure forced to sniff off data from people and send it over to others, be it state agencies or companies. It's like the novel 1984 adapted to the modern days, but crap. With tons of AI slop.

  • pydry 1 hour ago
    systemd desperately needs competition. it isnt just that it became a dependency for every low level service and a potential vector for privacy invasion, it's also janky to use.
    • matheusmoreira 37 minutes ago
      I do agree it needs competition. The more the better. The dependency thing is bad but it's free software. It will always be possible to route around that if it ever turns into a problem. Especially now that we have LLMs.

      I don't think it's janky though. It's pretty great. It has an answer to everything I've ever needed from it.

    • egorfine 38 minutes ago
      > systemd desperately needs competition

      Maybe it's too late.

      LP is cooking a way to deny system modifications [1]

      [1] https://news.ycombinator.com/item?id=46784572

    • fragmede 55 minutes ago
      where is it janky?
      • shakna 32 minutes ago
        The output devices (/dev/stdXXX) being sockets-only constantly trip people up.
      • youre-wrong3 49 minutes ago
        His imagination.
  • shevy-java 33 minutes ago
    The article makes one key mistake, in that it compares systemd to openrc. Aka some monster-system with billion features, to a fairly small system that juts relates to initializing a few things.

    The whole debate about systemd has always been very dishonest from the systemd devs. If you have 3 million lines of code, for instance, and offer 5000 features, just to give out semi-random numbers, then every alternative with, say, 100.000 lines of code and only 50 features, will lose out by definition. Systemd has NEVER been solely or primarily been an "init" system. People need to stop buying the propaganda 1:1. That includes self-promo.

    It is the same with age sniffing; some still believe it is about protecting kids. Then they were flabbergasted when governments - who suspiciously smell like corporate-controlled governments by the way, in particular in the UK - declare total war against VPNs. The excuse they use is not convincing at all, IF you buy into the assumption that this is about kids (which it is not).

    On the other hand, when systemd decided to support age sniffing (https://github.com/systemd/systemd/pull/40954), I guess they went a step too far. People who weren't against systemd, look at it differently now. After all why is Poettering so defensive about systemd supporting age sniffing? All that tasty data that is to be amassed. Some private entities love that data. You have become the product.

    As for "alternatives" to systemd, which is a misnomer IMO: I found that all the alternatives are pretty bad too. The best option is to try to stay as lean as possible without losing things that are objectively useful. Any init system that depends on shell scripts, already is a failure by design. (Systemd's unit files are also a failure; and the lack of transparency too. It is like the ultimate trojan horse.)