A GNU Shepherd 0.9 init rendszer kiadása

Két évvel az utolsó jelentős kiadás megjelenése után megjelent a GNU Shepherd 0.9 (korábban dmd) szolgáltatáskezelő, amelyet a GNU Guix System disztribúció fejlesztői fejlesztenek a függőségeket támogató SysV-init inicializációs rendszer alternatívájaként. . A Shepherd vezérlő démon és a segédprogramok a Guile nyelven (a Scheme nyelv egyik implementációja) vannak megírva, amely a szolgáltatások indításához szükséges beállítások és paraméterek meghatározására is szolgál. A Shepherd már használatos a GuixSD GNU/Linux disztribúciójában, és GNU/Hurdban is használható, de futhat bármely POSIX-kompatibilis operációs rendszeren, amelyhez a Guile nyelv elérhető.

A Shepherd a szolgáltatások indításának és leállításának munkáját a szolgáltatások közötti kapcsolatok figyelembevételével végzi, dinamikusan azonosítja és elindítja azokat a szolgáltatásokat, amelyektől a kiválasztott szolgáltatás függ. A Shepherd emellett támogatja a szolgáltatások közötti konfliktusok észlelését és azok egyidejű futásának megakadályozását. A projekt használható fő inicializálási rendszerként (init 1-es PID-vel), és különálló formában az egyes felhasználók háttérfolyamatainak kezelésére (például tor, privoxy, mcron stb. futtatására), a jogosultságokkal történő végrehajtással. ezen felhasználók közül.

Főbb újítások:

  • Az ideiglenes szolgáltatások (tranziens) koncepciója megvalósul, a folyamat leállása vagy a „stop” metódus hívása miatt a befejezés után automatikusan letiltásra kerül, amelyre olyan szintetizált szolgáltatások esetén lehet szükség, amelyeket leállítás után nem lehet újraindítani.
  • Az inetd-szerű szolgáltatások létrehozásához hozzáadtuk a „make-inetd-constructor” eljárást.
  • A hálózati tevékenység során aktivált szolgáltatások létrehozásához (a systemd socket aktiválási stílusban) hozzáadásra került a „make-systemd-constructor” eljárás.
  • Hozzáadott eljárás egy szolgáltatás indításához a háttérben - „start-in-the-background”.
  • ":supplementary-groups", "#:create-session" és "#:resource-limits" paraméterek hozzáadva a "make-forkexec-constructor" rutinhoz.
  • Engedélyezett működés blokkolás nélkül, miközben a PID-fájlokra vár.
  • A „#:log-file” paraméter nélküli szolgáltatások esetén a kimenet a syslogba történik, a #:log-file paraméterrel rendelkező szolgáltatások esetében pedig a napló egy külön fájlba kerül, amely jelzi a rögzítések idejét. A privileged shepherd folyamat naplói a $XDG_DATA_DIR könyvtárban tárolódnak.
  • A Guile 2.0-val való építés támogatása megszűnt. A Guile 3.0.5-3.0.7 verzióival kapcsolatos problémák megoldódtak.
  • A Fibers könyvtár 1.1.0-s vagy újabb verziója szükséges a működéshez.

Forrás: opennet.ru

Hozzászólás