Опубликован сервисный менеджер GNU Shepherd 0.9.2 (бывший dmd), который развивается разработчиками дистрибутива GNU Guix System в качестве альтернативы системе инициализации SysV-init, поддерживающей зависимости. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется для определения настроек и параметров запуска сервисов. Shepherd уже применяется в дистрибутиве GuixSD GNU/Linux i također je namijenjen korištenju na GNU/Hurdu, ali može se pokretati na bilo kojem POSIX-kompatibilnom OS-u za koji je dostupan Guile jezik.
Shepherd obavlja posao pokretanja i zaustavljanja usluga uzimajući u obzir odnose između usluga, dinamički identificirajući i pokrećući usluge o kojima odabrana usluga ovisi. Shepherd također podržava otkrivanje sukoba između usluga i sprječavanje njihovog istovremenog rada. Projekt se može koristiti i kao glavni sustav za inicijalizaciju (init s PID-om 1), iu zasebnom obliku za upravljanje pozadinskim procesima pojedinačnih korisnika (na primjer, za pokretanje tor, privoxy, mcron, itd.) s izvršenjem s pravima ovih korisnika.
Među promjenama:
- Deskriptori datoteka koji se koriste u Shepherdu sada su označeni zastavom O_CLOEXEC (close-on-exec) umjesto da se zatvaraju odmah nakon izvršenja exec-naredbe, dopuštajući da se ručke proslijede uslugama koje neizravno pokreće exec-naredba.
- Veze klijenata sada se obrađuju na način bez blokiranja, što sprječava da pastir zastane kada šalje nepotpunu naredbu.
- Osigurava stvaranje direktorija za datoteke dnevnika definirane u postavci "log-file" ako ne postoji.
Izvor: opennet.ru
