Vydanie inicializačného systému GNU Shepherd 0.9

Dva roky po vytvorení posledného významného vydania bol publikovaný správca služieb GNU Shepherd 0.9 (predtým dmd), ktorý vyvíjajú vývojári distribúcie GNU Guix System ako alternatívu k inicializačnému systému SysV-init, ktorý podporuje závislosti. . Ovládací démon a utility Shepherd sú napísané v jazyku Guile (jedna z implementácií jazyka Scheme), ktorý sa používa aj na definovanie nastavení a parametrov spúšťania služieb. Shepherd sa už používa v distribúcii GuixSD GNU/Linux a je tiež zameraný na použitie v GNU/Hurd, ale môže bežať na akomkoľvek OS kompatibilnom s POSIX, pre ktorý je dostupný jazyk Guile.

Shepherd vykonáva prácu spúšťania a zastavovania služieb tak, že berie do úvahy vzťahy medzi službami, dynamicky identifikuje a spúšťa služby, na ktorých závisí vybraná služba. Shepherd tiež podporuje zisťovanie konfliktov medzi službami a predchádzanie ich súbežnému spusteniu. Projekt je možné použiť ako hlavný inicializačný systém (init s PID 1), tak aj v samostatnej forme na správu procesov na pozadí jednotlivých používateľov (napríklad spúšťať tor, privoxy, mcron a pod.) s vykonávaním s právami týchto používateľov.

Hlavné inovácie:

  • Je implementovaný koncept dočasných služieb (prechodných), ktoré sa po dokončení automaticky deaktivujú v dôsledku ukončenia procesu alebo volania metódy „stop“, ktorá môže byť potrebná pre syntetizované služby, ktoré sa po vypnutí nedajú reštartovať.
  • Na vytvorenie služieb podobných inetd bola pridaná procedúra „make-inetd-constructor“.
  • Na vytvorenie služieb, ktoré sa aktivujú počas sieťovej aktivity (v štýle aktivácie soketu systemd), bola pridaná procedúra „make-systemd-constructor“.
  • Pridaný postup na spustenie služby na pozadí – „štart-in-the-background“.
  • Pridané parametre ":supplementary-groups", "#:create-session" a "#:resource-limits" do rutiny "make-forkexec-constructor".
  • Povolená prevádzka bez blokovania počas čakania na súbory PID.
  • Pre služby bez parametra „#:log-file“ sa poskytuje výstup do syslog a pre služby s parametrom #:log-file sa protokol zapisuje do samostatného súboru s uvedením času nahrávok. Protokoly z neprivilegovaného procesu pastiera sú uložené v adresári $XDG_DATA_DIR.
  • Podpora pre budovanie pomocou Guile 2.0 bola ukončená. Problémy pri používaní Guile verzie 3.0.5-3.0.7 boli vyriešené.
  • Teraz sa vyžaduje, aby fungovala knižnica Fibers 1.1.0 alebo novšia.

Zdroj: opennet.ru

Pridať komentár