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

K dispozícii vedúci služby GNU Shepherd 0.8 (bývalý dmd), ktorý je vyvíjaný vývojármi distribúcie GNU Guix System ako alternatíva k inicializačnému systému SysV-init, ktorá si uvedomuje závislosť. 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 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úšťanie tor, privoxy, mcron atď.) s vykonávaním s právami týchto používateľov. 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.

Hlavné inovácie:

  • Make-kill-destructor implementuje zabíjanie skupiny procesov;
  • Pridaný parameter „default-pid-file-timeout“, ktorý určuje čas čakania na vytvorenie súboru PID;
  • Ak sa súbor PID neobjaví počas časového limitu, celá skupina procesov sa ukončí (rozhoduje problém opustenie pracovných procesov bez súboru PID);
  • Pridaný parameter „#:file-creation-mask“ do „make-forkexec-constructor“, implementované vytváranie log súboru a prestali sa podporovať staré volacie konvencie;
  • Vyriešené problémy s kompiláciou na systémoch bez prctl, ako je GNU/Hurd;
  • Opravený problém, ktorý spôsoboval odosielanie SIGALRM každú sekundu.

Zdroj: opennet.ru

Pridať komentár