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).

  • Badabinski@kbin.earth
    link
    fedilink
    arrow-up
    5
    ·
    18 hours ago

    It also lacks any form of dependency management AFAICT. I don’t think there’s any way to say you depend on another service. I’m guessing you can probably order things lexically? But that’s, uh, shitty and bad.

    • TMP_NKcYUEoM7kXg4qYe@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      3 hours ago

      This whole thing is basically runit + some extra features. So dependencies work the same as runit. You just check if the dependency is running. If not, you exit. Then the init will keep restarting the service until it works. (Just guessing based on the README)

    • Zucca@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      1
      ·
      16 hours ago

      Initial commit on Oct 21, 2023

      If I’d implement a new init system, the dependency system would be one of the first on my TODO list. So… That’s strange. 🤔