Byl zveřejněn správce služeb GNU Shepherd 0.9.2 (dříve dmd), který vyvíjejí vývojáři distribuce GNU Guix System jako alternativu k systému inicializace SysV-init, který podporuje závislosti. Řídící démon a nástroje Shepherd jsou napsány v jazyce Guile (jedna z implementací jazyka Scheme), který se také používá k určení nastavení a parametrů spuštění služeb. Shepherd se již používá v distribuci GuixSD GNU/Linux a zaměřuje se také na použití v GNU/Hurd, ale může fungovat v jakémkoli operačním systému kompatibilním s POSIX, pro který je dostupný jazyk Guile.
Shepherd provádí úlohy spouštění a zastavování služeb, přičemž zohledňuje vzájemné vztahy mezi službami, dynamicky určuje a spouští služby, od kterých závisí vybraná služba. Shepherd také podporuje definici konfliktů mezi službami a brání jejich současnému provádění. Projekt může být použit jak jako hlavní systém inicializace (init s PID 1), tak v odděleném režimu pro správu procesů na pozadí jednotlivých uživatelů (například pro spuštění tor, privoxy, mcron atd.) s prováděním s právy těchto uživatelů.
Mezi změnami:
- Používané v Shepherd souborové deskriptory jsou nyní označovány příznakem O_CLOEXEC (close-on-exec) a nejsou uzavřeny ihned po provedení „exec-command“, což umožňuje předávat deskriptory službám, které nejsou spuštěny přímo, ale pomocí „exec-command“.
- Klientská spojení jsou nyní zpracovávána v neblokujícím režimu, což zabraňuje zablokování Shepherdu při odesílání neúplného příkazu.
- Bylo zajištěno vytvoření adresáře pro logové soubory, definované v nastavení „log-file“, v případě, že neexistuje.
Zdroj: opennet.ru
