teenindusjuht (), mis on arendatud GNU Guix System'i distributsiooni arendajate poolt toetava sõltuvusena alternatiivina SysV-init'i initsialiseerimissüsteemile. Juhtimisdaemoni ja Shepherd'iga seotud utiliidid on kirjutatud keeles Guile (Scheme'i rakendus), mida kasutatakse ka teenuste seadistuste ja käivitamise parameetrite määramiseks. Shepherd'i kasutatakse juba GuixSD GNU/Linux distributsioonis ning on suunatud ka GNU/Hurdi kasutamiseks, kuid võib töötada igas POSIX-ühilduvas operatsioonisüsteemis, kus on saadaval keel Guile.
Shepherd'i saab kasutada nii peamise initsialiseerimissüsteemina (init c PID 1) kui ka eraldi rakendusena kasutajate taustaprotsesside haldamiseks (nt teenuste käivitamiseks nagu tor, privoxy, mcron jms), teostades seda ülendatud õigustes vastavalt kasutajatele. Shepherd haldab teenuste käivitamist ja peatamist, arvestades teenuste vahelisi seoseid, dünaamiliselt määrates ja käivitades teenused, sõltuvalt valitud teenusest. Shepherd toetab ka konfliktide määratlemist teenuste vahel ning takistab nende samaaegset käivitamist.
Põhilised uuendused:
- Make-kill-destructor funksiooni abil on rakendatud protsesside gruppide lõpetamine;
- Lisatud parameeter «default-pid-file-timeout», mis määrab ooteaja PID-faili loomisele;
- Kui PID-fail ei ilmu ooteaja jooksul, lõpetatakse kogu protsesside grupp (lahendab PID-failita tööprotsesside jäämise);
- «make-forkexec-constructor» funktsiooni juurde on lisatud parameeter «#:file-creation-mask», rakendatud logifailide loomine ja toetamine vanade kutseskeemide lõpetamine;
- Probleemid kompileerimisel süsteemidele, kus puudub prctl, näiteks GNU/Hurd, on lahendatud;
- Parandatud viga, mis põhjustas SIGALRM signaalide saatmist iga sekundi tagant.
Allikas: opennet.ru
