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

  • Zucca@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    5 days ago

    I wonder what new does this bring into the table?

    I mean we already have at least these in addition to systemd:

    • OpenRC + openrc-init
    • s6 + s6-rc
    • runit
    • Epoch
    • dinit
    • minit
    • GNU Shepherd
    • finit

    The state being stored in RAM seems like a nifty feature. I like it.

    Very quickly glanced… I think it lacks service supervision and user services. Although user services are missing in many others too. Except it looks like users can run Nitro by themselves (autostart via cron @boot maybe?). Somebody correct me if I’m wrong.

    Anyway, more choices leads to more ideas being implemented. 👍

    • Badabinski@kbin.earth
      link
      fedilink
      arrow-up
      0
      ·
      5 days 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.