Advertisement

Nitro: apró, de rugalmas init rendszer és folyamatfelügyelő

Anitroegy apró folyamatfelügyelő, amely Linuxon és NetBSD-n PID 1-ként is használható.

Áttekintés

Anitrofő alkalmazási területei:

  • Init rendszerLinux vagy NetBSD gépekhez (beágyazott, asztali vagy szerver célokra).
  • Init rendszerLinux initramfs-hez.
  • Init rendszerLinux konténerekhez (Docker/Podman/LXC/Kubernetes).
  • Nem privilegizált felügyeleti démonáltalános POSIX rendszereken.

Anitrokonfigurációja egy szkriptkönyvtárral történik, alapértelmezetten a/etc/nitro(vagy az első parancssori argumentumban megadott könyvtár).

Előnyök más rendszerekkel szemben

  • Minden állapototRAM-bantart, így írásvédett gyökérfájlrendszereken is működik trükkök nélkül.
  • Hatékony, eseményvezérelt, lekérdezésmentes működés.
  • Nulla memóriafoglalásfutási idő alatt.
  • Egyetlen önálló bináris fájl, plusz egy opcionális bináris a rendszer vezérléséhez (nitroctl).
  • Nincs szükség konfigurációs fordítási lépésekre, a szolgáltatások egyszerűenszkripteket tartalmazó könyvtárak.
  • Támogatja a szolgáltatásokmegbízható újraindítását.
  • Megbízható naplózási mechanizmusok szolgáltatásonként vagy alapértelmezés szerint, akár naplózási láncok is kialakíthatók.

Szolgáltatások (Services)

A konfigurációs könyvtáron belül (alapértelmezés szerint/etc/nitro) minden alkönyvtár egy szolgáltatást képvisel, és a következő fájlokat tartalmazhatja:

  •  setup– Opcionális futtatható fájl, amely a szolgáltatás indítása előtt fut le. 0-ás státusszal kell kilépnie a folytatáshoz.
  • run– Opcionális futtatható fájl, amely a szolgáltatást futtatja; nem léphet ki mindaddig, amíg a szolgáltatás futónak minősül. Ha nincs run szkript, a szolgáltatás „egyszeri futásúnak” (oneshot) minősül.
  • finish– Opcionális futtatható fájl, amely a run folyamat befejezése után fut le. Két argumentumot kap: a run folyamat kilépési státuszát és a jelzést (szignált), ami megölte (ha volt ilyen).
  • log– Szimbolikus link egy másik szolgáltatási könyvtárra. A run standard kimenete pipe -on keresztül csatlakozik a log szolgáltatás standard bemenetéhez (naplózási láncokhoz).
  • down– Opcionális fájl, amely miatt a nitro alapértelmezés szerint nem indítja el a szolgáltatást.

Speciális szolgáltatások

  • LOG: Ez a szolgáltatás naplózási szolgáltatásként működik minden olyan szolgáltatás számára, amelynek nincs sajátlogszimlinkje.
  • SYS:
    • SYS/setupa többi szolgáltatás elindítása előtt fut le.
    • SYS/finishaz összes többi szolgáltatás leállítása előtt fut le, mielőtt a rendszer leállna.
    • SYS/finalaz összes folyamat leállítása után fut le.
    • SYS/fatalfut le (kilépés helyett), ha helyrehozhatatlan hiba történik.
    • SYS/reincarnatefut le leállítás helyett (újraindításhoz, pl. initramfs esetén).
  • A rendszer vezérlése:nitroctl
  • A futónitropéldány távolról vezérelhető anitroctleszközzel.
  • Gyakori parancsok:
ParancsLeírás
listMegmutatja a szolgáltatások listáját, állapotát, PID-jét, futási idejét és utolsó kilépési státuszát.
up [SERVICE]Elindítja a szolgáltatást.
down [SERVICE]Leállítja a szolgáltatást.
rescanÚjraolvassa a konfigurációs könyvtárat, elindítja a hozzáadott, leállítja az eltávolított démonokat.
ShutdownLeállítja (kikapcsolja) a rendszert.
RebootÚjraindítja a rendszert.
pidof [SERVICE]Kiírja a szolgáltatás PID-jét.
  • Módok
  • Anitrohárom fő fázisa:
  1. Rendszerindítás: Ha létezik aSYSszolgáltatás, annaksetupszkriptje fut először. Ezután elindul az összes „nem leállított” szolgáltatás.
  2. Működés: Ha egy szolgáltatás kilép, újraindul (rövid időn belüli gyors újraindulás esetén 2 másodpercet vár).
  3. Leállítás/Újraindítás: Anitroctl Shutdownvagynitroctl Rebootparancsokkal indítható. Ekkor fut aSYS/finish, majd anitroSIGTERMjelzést küld minden futó szolgáltatásnak, 7 másodpercig vár, majdSIGKILL-t küld. Végül fut aSYS/final, és a rendszer leáll vagy újraindul.

 

Anitro initGitHub repó linkje:https://github.com/leahneukirchen/nitro

Translate »