Vydání iniciačního systému GNU Shepherd 0.9

Dva roky po vytvoření poslední významné verze byl publikován správce služeb GNU Shepherd 0.9 (dříve dmd), který je vyvíjen vývojáři distribuce GNU Guix System jako alternativa k inicializačnímu systému SysV-init, který podporuje závislosti. . Ovládací démon Shepherd a obslužné programy jsou napsány v jazyce Guile (jedna z implementací jazyka Scheme), který se také používá k definování nastavení a parametrů pro spouštění služeb. Shepherd se již používá v distribuci GuixSD GNU/Linux a je také zaměřen na použití v GNU/Hurd, ale může běžet na jakémkoli OS kompatibilním s POSIX, pro který je k dispozici jazyk Guile.

Shepherd provádí práci při spouštění a zastavování služeb tím, že bere v úvahu vztahy mezi službami, dynamicky identifikuje a spouští služby, na kterých vybraná služba závisí. Shepherd také podporuje detekci konfliktů mezi službami a zabránění jejich souběžnému spuštění. Projekt lze použít jak jako hlavní inicializační systém (init s PID 1), tak v samostatné podobě pro správu procesů na pozadí jednotlivých uživatelů (například pro spouštění tor, privoxy, mcron atd.) s prováděním s právy těchto uživatelů.

Hlavní inovace:

  • Je implementován koncept dočasných služeb (přechodných), které se po dokončení automaticky deaktivují z důvodu ukončení procesu nebo volání metody „stop“, což může být vyžadováno pro syntetizované služby, které nelze po vypnutí restartovat.
  • Pro vytváření služeb podobných inetd byla přidána procedura „make-inetd-constructor“.
  • Pro vytvoření služeb, které se aktivují během síťové aktivity (ve stylu aktivace soketu systemd), byla přidána procedura „make-systemd-constructor“.
  • Přidán postup pro spuštění služby na pozadí – „start-in-the-background“.
  • Do rutiny "make-forkexec-constructor" byly přidány parametry ":supplementary-groups", "#:create-session" a "#:resource-limits".
  • Povolen provoz bez blokování při čekání na soubory PID.
  • U služeb bez parametru „#:log-file“ je poskytován výstup do syslog a u služeb s parametrem #:log-file se protokol zapisuje do samostatného souboru s uvedením času nahrávek. Protokoly z neprivilegovaného procesu shepherd jsou uloženy v adresáři $XDG_DATA_DIR.
  • Podpora pro vytváření pomocí Guile 2.0 byla ukončena. Problémy při používání Guile verze 3.0.5-3.0.7 byly vyřešeny.
  • Nyní je vyžadována knihovna Fibers 1.1.0 nebo novější.

Zdroj: opennet.ru

Přidat komentář