Dvije godine nakon posljednjeg značajnog izdanja, objavljen je GNU Shepherd 0.9 (prije dmd). Razvijaju ga programeri GNU Guix System distribucije kao alternativu SysV-init sustavu inicijalizacije koji obrađuje ovisnosti. Shepherd-ov kontrolni demon i uslužni programi napisani su u Guileu (implementacija Scheme jezika), koji se također koristi za definiranje konfiguracije usluga i parametara pokretanja. Shepherd se već koristi u GuixSD GNU distribuciji.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.
Glavne inovacije:
- Implementiran je koncept privremenih usluga (transient), automatski onemogućenih nakon završetka zbog prekida procesa ili poziva metode "stop", što može biti potrebno za sintetizirane usluge koje se ne mogu ponovno pokrenuti nakon gašenja.
- Za stvaranje usluga sličnih inetd-u, dodan je postupak “make-inetd-constructor”.
- Za stvaranje usluga koje se aktiviraju tijekom mrežne aktivnosti (u stilu aktivacije systemd utičnice), dodan je postupak "make-systemd-constructor".
- Dodana procedura za pokretanje usluge u pozadini - “start-in-the-background”.
- Dodani su parametri ":supplementary-groups", "#:create-session" i "#:resource-limits" u rutinu "make-forkexec-constructor".
- Omogućen rad bez blokiranja dok se čekaju PID datoteke.
- Za usluge bez parametra “#:log-file” omogućen je izlaz u syslog, a za usluge s parametrom #:log-file, dnevnik se zapisuje u zasebnu datoteku koja pokazuje vrijeme snimanja. Dnevnici neprivilegiranog pastirskog procesa pohranjeni su u direktoriju $XDG_DATA_DIR.
- Podrška za izgradnju s Guile 2.0 je prekinuta. Problemi pri korištenju Guilea verzija 3.0.5-3.0.7 su riješeni.
- Sada je za rad potrebna biblioteka Fibres 1.1.0 ili novija.
Izvor: opennet.ru
