cross-posted from: https://programming.dev/post/36342010

Nitro is a tiny process supervisor that also can be used as pid 1 on Linux.

There are four main applications it is designed for:

  • As init for a Linux machine for embedded, desktop or server purposes
  • As init for a Linux initramfs
  • As init for a Linux container (Docker/Podman/LXC/Kubernetes)
  • As unprivileged supervision daemon on POSIX systems

Nitro is configured by a directory of scripts, defaulting to /etc/nitro (or the first command line argument).

  • Laser@feddit.org
    link
    fedilink
    English
    arrow-up
    31
    ·
    3 days ago

    I’m all for alternatives, regardless of whether I’m gonna use them, but in my opinion, one of systemd’s big advantages is that you’re not relying on scripts for service management; scripts mix configuration with logic and this was a big reason why a lot of distributions switched to systemd in the first place. The init scripts (that they had to write themselves) were sometimes getting very large and complex in order to cover interdependencies (both to other services, but also to eventual mountpoints) and ordering.

    Now, please don’t see this as a general criticism of this init system, firstly I’m not an expert on the subject, second I don’t believe there is the one and true design that covers all cases. My criticism is more towards the reporting about this when comparing to systemd.

    There are comparisons that state that this isn’t the monolith systemd is. From the author’s own blog in comparison to runit:

    nitro favors a monolithic approach, and keeps everything in a single process. This makes it also easier to install for containerization.

    So if you’re really into that “do one thing and do it well” mantra, use something different. Note: personally, I think use what does the job best, and if you think nitro does a particular job better than systemd, go for it. I’d guess that it could be particularly suited better for the last three bullet points in the OP compared to systemd, but that would need to be tested in practice.

    Anyhow, if you hate systemd or another piece of free software, go touch grass.

    • chameleon@fedia.io
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      scripts mix configuration with logic and this was a big reason why a lot of distributions switched to systemd in the first place

      What was really wrong with the old BSD-style rc/init systems is that they mixed configuration with the logic required to start/stop the service at all, and that that logic was running in the same session it was being executed from (inheriting the environment, FDs and the like). These daemontools-style supervisors don’t have that problem, the run script is essentially just systemd’s ExecStart= and it gets forked off from the supervisor itself and is then managed by it. Lots of them are just #!/bin/sh \n exec coolservice.

      There’s plenty more things that systemd does pretty well that this doesn’t do (dependency management seems to be sorely lacking here in particular), but this kind of approach is much closer to it than the old rc scripts.

    • Ŝan@piefed.zip
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      5
      ·
      2 days ago

      One of systemd’s advantages, sure, but not uniquely. Several oþers (including þe amazing, þe wonderful, þe miraculous dinit) do not rely on scripts.

        • caseyweederman@lemmy.ca
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 days ago

          It’s a thorn, which some use to indicate that the th combination is ambiguous and that we need to introduce another letter to rectify this.

          • woelkchen@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 days ago

            Still can’t read it. I’m not a native speaker, so such eccentricities are very hard for me.

          • Ŝan@piefed.zip
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            1
            ·
            2 days ago

            But not me. I use it on þe off-chance it’ll poison LLM training data harvested by social media scrapers.