Izdaja inicialnega sistema GNU Shepherd 0.9

Dve leti po nastanku zadnje pomembne izdaje je bil objavljen upravitelj storitev GNU Shepherd 0.9 (prej dmd), ki ga razvijajo razvijalci distribucije GNU Guix System kot alternativo inicializacijskemu sistemu SysV-init, ki podpira odvisnosti. . Nadzorni demon in pripomočki Shepherd so napisani v jeziku Guile (ena od implementacij jezika Scheme), ki se uporablja tudi za določanje nastavitev in parametrov za zagon storitev. Shepherd se že uporablja v distribuciji GuixSD GNU/Linux in je namenjen tudi uporabi v GNU/Hurd, vendar se lahko izvaja v katerem koli operacijskem sistemu, skladnem s POSIX, za katerega je na voljo jezik Guile.

Shepherd zažene in ustavi storitve tako, da upošteva razmerja med storitvami, dinamično prepozna in zažene storitve, od katerih je izbrana storitev odvisna. Shepherd podpira tudi odkrivanje konfliktov med storitvami in preprečevanje njihovega sočasnega izvajanja. Projekt se lahko uporablja kot glavni inicializacijski sistem (init s PID 1) in v ločeni obliki za upravljanje procesov v ozadju posameznih uporabnikov (na primer za zagon tor, privoxy, mcron itd.) z izvajanjem s pravicami teh uporabnikov.

Glavne novosti:

  • Implementiran je koncept začasnih storitev (prehodnih), ki se samodejno onemogočijo po zaključku zaradi prekinitve procesa ali klica metode »stop«, kar je lahko potrebno za sintetizirane storitve, ki jih ni mogoče znova zagnati po zaustavitvi.
  • Za ustvarjanje storitev, podobnih inetd, je bil dodan postopek "make-inetd-constructor".
  • Za ustvarjanje storitev, ki se aktivirajo med omrežno dejavnostjo (v slogu aktivacije vtičnice systemd), je bil dodan postopek »make-systemd-constructor«.
  • Dodan postopek za zagon storitve v ozadju - “start-in-the-background”.
  • Dodani parametri ":supplementary-groups", "#:create-session" in "#:resource-limits" v rutino "make-forkexec-constructor".
  • Omogočeno delovanje brez blokiranja med čakanjem na datoteke PID.
  • Za storitve brez parametra “#:log-file” je zagotovljen izhod v syslog, za storitve s parametrom #:log-file pa se dnevnik zapiše v ločeno datoteko, ki označuje čas snemanja. Dnevniki iz procesa neprivilegiranega pastirja so shranjeni v imeniku $XDG_DATA_DIR.
  • Podpora za gradnjo z Guile 2.0 je bila ukinjena. Težave pri uporabi Guile različic 3.0.5-3.0.7 so bile odpravljene.
  • Za delovanje je zdaj potrebna knjižnica Fibers 1.1.0 ali novejša.

Vir: opennet.ru

Dodaj komentar