SystemD is blamed for long boot times and being heavy and bloated on resources. I tried OpenRC and Runit on real hardware (Ryzen 5000-series laptop) for week each and saw only 1 second faster boot time.

I’m old enough to remember plymouth.service (graphical image) being the most slowest service on boot in Ubuntu 16.04 and 18.04. But I don’t see that as an issue anymore. I don’t have a graphical systemD boot on my Arch but I installed Fedora Sericea and it actually boots faster than my Arch despite the plymouth (or whatever they call it nowadays).

My 2 questions:

  1. Is the current SystemD rant derived from years ago (while they’ve improved a lot)?
  2. Should Linux community rant about bigger problems such as Wayland related things not ready for current needs of normies?
  • digdilem@feddit.uk
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    Nah, it’s fine. Boot times are considerably faster than sys.v in most cases, and it has a huge amount of functionality. Most people I work with have adopted it and much prefer it to the old init.d and sys.v systems.

    People’s problem with systemd (and there are fewer people strongly against it than before) seem to break down into two groups:

    1. They were happy with sys.v and didn’t like change. Some were unhappy with how distros adopted it. (The debian wars in particular were really quite vicious)

    2. It does too much. systemd is modular, but even so does break one of the core linux tenets - “do one thing well”. Despite the modularity, it’s easy to see it as monolithic.

    But regardless of feelings, systemd has achieved what it set out to do and is the defacto choice for the vast majority of distros, and they adopted it because it’s better. Nobody really cares if a user tries to make a point by not using it any more, they’re just isolating themselves. The battle was fought and systemd won it.

    • Yozul@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      One of my biggest problems with critics of systemd is that a lot of the same people who make that second point also argue against wayland adoption when xorg does the exact same thing as systemd. It makes me feel like they’re just grumpy stubborn old Linux nerds from the 90s who just hate anything that’s not what they learned Linux with.

      Which is sad, because honestly I think it’s kind of not great that an unnecessarily massive project has gained such an overwhelming share of users when the vast majority of those users don’t need or use most of what it does. Yeah, the init systems from before systemd sucked, but modern alternatives like runit or openrc work really well. Unfortunately they get poorly supported because everyone just assumes you have systemd. I don’t like the lack of diversity. I think it’s a problem that any init system “won”.

      • taladar@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Unfortunately they get poorly supported because everyone just assumes you have systemd.

        No, they get poorly supported because they were a pain to support even before systemd ever showed up. I for one was extremely tired of writing the same shit over and over again in every init script and then going through the tedious process of porting the script to every platform for minor idiosyncrasies of the various distros (start-stop-daemon available or not was one I remember, the general bash/GNU vs. BSD stuff you get with any script was another) from 10 year old RHEL to modern ones.

    • jarfil@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      “do one thing well”

      Arguably, Systemd does exactly that: orchestrate the parallel starting of services, and do it well.

      The problem with init.d and sys.v is they were not designed for multi-core systems where multiple services can start at once, and had no concept of which service depended on which, other than a lineal “this before that”. Over the years, they got extended with very dirty hacks and tons of support functions that were not consistent between distributions, and still barely functional.

      Systemd cleaned all of that up, added parallel starting taking into account service dependencies, which meant adding an enhanced journaling system to pull status responses from multiple services at once, same for pulling device updates, and security and isolation configs.

      It’s really the minimum that can be done (well) for a parallel start system.

    • TerraRoot@sh.itjust.works
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      I just hate the syntax, systemctl start apache2 feels like dumb manager speak over service apache2 start.

      But other then that I love how systemd has been for me.

      • pingveno@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        1 year ago

        How so? I like the systemctl syntax more, since it allows for starting/stopping many units at once. It also supports a much richer set of commands than service ever did.

        • TerraRoot@sh.itjust.works
          link
          fedilink
          arrow-up
          0
          ·
          1 year ago

          it just feels like a manager decided the command should read like english, made the decision then went back to never entering a command again in the terminal again. every day, i get to decide, should i enter “systemctl restart problem_service” all again or hit up on the keyboard and and hold back, then rewrite over the previous status command. bit less work if the status/stop/start/restart bit was on the end like it used to be.

          • MaxHardwood@lemmy.ca
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            In BASH ALT+T will swap the last white spaced separated strings… It’s still annoying but makes “systemctl problem_server start/status/restart” a bit easier. CTRL+W will clear the current string to whitespace, so up arrow, ALT+T, CTRL+W, status, ALT+T, Enter.