Након две године од формирања последње главне верзије, јавности је објављено издање нове верзије 0.9 менаџера услуга GNU Shepherd (раније познатог као dmd) . Развијају га програмери GNU Guix дистрибуције као алтернативу иницијализацији SysV-init која је свесна системских зависности.
Шепард пружа функционалност корисничког простора асинхроно као сервисе , што су у Шепарду генеричке функције и типови података објеката извезени за Шепард да би их користио у проширивању основног оперативног система на дефинисан начин. За разлику од systemd-а, процес праћења корисничког простора се покреће под именом тог корисника.
О Схепхерду
Језгро Шефердовог модела иницијализације корисничког простора је концепт проширења, облика композибилности у којем су сервиси дизајнирани да се преклапају са другим сервисима, допуњујући их сложенијим или специјализованијим понашањима по жељи. Ово изражава односе зависности засноване на инстанцирању који се налазе у многим модерним иницијализационим системима, чинећи систем модуларним, али такође омогућава сервисима да варијабилно интерагују са другим сервисима на произвољне начине.
Шепард такође пружа такозване виртуелне сервисе који омогућавају динамичку испоруку преко класе повезаних сервисних објеката, као што су сви они који креирају инстанце агента за пренос поште (MTA) за систем.
Систем којим управља Схепхерд демон може да представи свој кориснички простор као усмерени ациклични граф, са „системском услугом“ (одговорном за фазе раног покретања и покретања) као роот и свим накнадним иницијализованим услугама као проширењима функционалности системске услуге , директно или транзитивно преко других услуга.
Пошто је написан и конфигурисан у Guile Scheme-у, GNU Shepherd је дизајниран да буде лако програмабилан од стране систем администратора, али се такође може користити за управљање профилима непривилегованих демона и сервиса по кориснику.
Његови сервиси и конфигурација се чувају једнообразно као објектно оријентисан Scheme код, и иако је основни скуп сервиса обезбеђен са основним Guix системом, произвољни нови сервиси могу се флексибилно декларисати, а путем Guile-овог објектног система, GOOPS, постојећи сервиси се могу редефинисати по нахођењу корисника тако што се од Shepherd-а затражи да динамички препише сервисе на одређене начине приликом инстанцирања.
ГНУ Схепхерд је првобитно дизајниран да ради са ГНУ Хурдом, а касније га је усвојио Гуик систем.
Главне нове карактеристике ГНУ Схепхерд 0.9
Ова нова верзија истиче имплементацију концепта привремених (транзијентних) сервиса, који се аутоматски искључују након завршетка због завршетка процеса или позива методе „стоп“, што може бити потребно за синтетизоване сервисе који се не могу поново покренути након завршетка.
Још једна значајна промена је то што се за сервисе без параметра „#:log-file“ излаз доставља syslog-у , а за сервисе са параметром „#:log-file“, лог се уписује у посебну датотеку која указује на време логова у непривилегованом Shepherd процесу, који се чува у директоријуму $XDG_DATA_DIR.
Поред тога, вреди напоменути да је процедура „маке-инетд-цонструцтор“ додата за креирање услуга сличних инетд-у и да је додата процедура „маке-системд-цонструцтор“ за креирање услуга које се активирају у мрежној активности (стил системд соцкет активирање).
Остале значајне промене у овој новој верзији укључују:
- Додата процедура за покретање позадинске услуге:
- Додати параметри „:супплементари-гроупс“, „#:цреате-сессион“ и „#:ресоурце-лимитс“ у процедуру „маке-форкекец-цонструцтор“.
- Загарантован рад без закључавања док се чекају ПИД датотеке.
- Уклоњена подршка за компајлирање са Гуиле 2.0. Решени проблеми при коришћењу Гуиле верзија 3.0.5-3.0.7.
- Библиотека влакана 1.1.0 или новија сада је потребна за рад.
- Побољшана документација и примери
- Схепхерд се више не може изградити са Гуиле 2.0
- Поправка грешке компајлера Гуиле 3.0.[5-7]
- Ажурирани преводи
Коначно, ако сте заинтересовани да сазнате више или желите да набавите ову нову верзију, можете погледати детаље, документацију и преузети је са следећег линка.