Kaks aastat pärast eelmise olulise väljaande loomist on avaldatud GNU Shepherd 0.9 (endine dmd), mis on GNU Guix System'i arendajate loodud teenusehaldur alternatiivina SysV-init initsialiseerimissüsteemile, millel on sõltuvuste toetus. Shepherdi haldusteem ja utiliidid on kirjutatud Guile'i keeles (üks Scheme'i keele rakendustest), mida kasutatakse ka teenuste seadete ja käivitamisparameetrite määratlemiseks. Shepherd on juba kasutusel GuixSD GNU/Linuxi süsteemis ja on suunatud ka GNU/Hurdi kasutamiseks, kuid võib töötada igas POSIX-kliendiga opsüsteemis, kus Guile'i keel on saadaval.
Shepherd teostab teenuste käivitamist ja peatamist, arvestades teenuste vahelisi seoseid, dünaamiliselt määrates ja käivitades teenuseid, millest valitud teenus sõltub. Shepherd toetab samuti konfliktide määratlemist teenuste vahel ning takistab nende samaaegset täitmist. Projekti saab kasutada nii peamise initsialiseerimissüsteemina (init PID 1) kui ka eraldi vormis, et hallata teatud kasutajate taustateenuseid (nt tor, privoxy, mcron jne), tehes seda vastava kasutaja õiguste all.
Põhilised uuendused:
- On rakendatud ajutiste teenuste (transient) kontseptsioon, mis lülitatakse automaatselt välja pärast lõpetamist, kas protsessi lõpetamise või meetodi „stop” väljakutsumise tõttu, mis võib olla vajalik sünteesitud teenuste puhul, mida ei saa pärast lõpetamist uuesti käivitada.
- inetd-sarnaste teenuste loomiseks on lisatud protseduur „make-inetd-constructor.”
- Teenuste loomiseks, mis aktiveeruvad võrguaktiviteedi korral (systemd socket activation stiilis), on lisatud protseduur „make-systemd-constructor.”
- Lisatud protseduur teenuse käivitamiseks taustal — „start-in-the-background.”
- Protseduuriga «make-forkexec-constructor» on lisatud parameetrid «:supplementary-groups», «#:create-session» ja «#:resource-limits».
- Tagatud on blokeerimata töö PID-failide ootamisel.
- Teenuste jaoks, millel puudub parameeter «#:log-file», on tagatud syslog'i väljund, ja teenuste puhul, millel on parameeter «#:log-file», salvestatakse logi eraldi faili koos kirje ajatemplega. Madala õigustega protsessi shepherd logid salvestatakse katalooge $XDG_DATA_DIR.
- Tugi Guile 2.0 jaoks on lõpetatud. Probleemid Guile versioonidega 3.0.5-3.0.7 on lahendatud.
- Nüüd on nõutav Fibers 1.1.0 või uuema versiooni teek.
Allikas: opennet.ru
