servisný manažér (), ktorý sa vyvíja vývojármi distribúcie GNU Guix System ako podporná závislosť alternatívy k systému inicializácie SysV-init. Riadiaci démon a utilitky Shepherd sú napísané v jazyku Guile (jedna z implementácií jazyka Scheme), ktorý sa rovnako používa na definovanie nastavení a parametrov spustenia služieb. Shepherd sa už používa v distribúcii GuixSD GNU/Linux a je zameraný aj na použitie v GNU/Hurd, ale môže fungovať v akomkoľvek POSIX-kompatibilnom OS, pre ktorý je dostupný jazyk Guile.
Shepherd môže slúžiť ako hlavný systém inicializácie (init s PID 1), tak aj oddelene na riadenie pozadových procesov jednotlivých používateľov (napríklad na spustenie tor, privoxy, mcron a podobne) s vykonávaním pod právami týchto používateľov. Shepherd vykonáva prácu pri spúšťaní a zastavovaní služieb, berúc do úvahy vzťahy medzi službami, dynamicky určuje a spúšťa služby, od ktorých závisí vybraná služba. Shepherd taktiež podporuje určenie konfliktov medzi službami a zabraňuje ich súbežnému vykonávaniu.
Hlavné novinky:
- V make-kill-destructor je implementované zabíjanie skupiny procesov;
- Pridaný parameter „default-pid-file-timeout“, ktorý určuje časový limit na vytvorenie PID súboru;
- Ak PID súbor nevznikol počas časového limitu, zabezpečuje sa ukončenie celej skupiny procesov (rieši s ponechaním pracovných procesov bez PID súboru);
- V „make-forkexec-constructor“ bol pridaný parameter „#:file-creation-mask“, implementované vytváranie log súborov a podporovaná stará dohoda o volaniach bola ukončená;
- Riešené problémy s kompiláciou na systémoch bez prctl, ako je GNU/Hurd;
- Odstránené nedostatky, ktoré viedli k odoslaniu SIGALRM každú sekundu.
Zdroj: opennet.ru
