GNU Shepherd, мениджър на услуги, разработен от Guix

Две години след създаването на последната основна версия, публично беше обявено издаването на новата версия на GNU Shepherd service manager 0.9 (преди известен като dmd) . Тя се разработва от разработчиците на дистрибуцията GNU Guix като алтернатива на инициализацията SysV-init, съобразена със системните зависимости.

Shepherd предоставя функционалност в потребителското пространство асинхронно като услуги , които в Shepherd са генерични функции и обектни типове данни, експортирани за Shepherd, за да се използва за разширяване на базовата операционна система по дефиниран начин. За разлика от systemd, процесът за наблюдение на потребителското пространство се изпълнява от името на този потребител.

Относно Шепърд

Ядрото на модела за инициализация на потребителското пространство на Шепърд е концепцията за разширение, форма на композируемост, при която услугите са проектирани да се припокриват с други услуги, допълвайки ги с по-сложни или специализирани поведения, ако е необходимо. Това изразява базираните на инстанции зависимости, открити в много съвременни init системи, правейки системата модулна, но също така позволява на услугите да взаимодействат променливо с други услуги по произволни начини.

Shepherd предоставя и така наречените виртуални услуги , които позволяват динамична доставка върху клас свързани сервизни обекти, като например всички тези, които създават екземпляри на агент за прехвърляне на поща (MTA) за системата.

Система, управлявана от демона Shepherd, може да представи своето потребителско пространство като насочена ациклична графика, със "системната услуга" (отговорна за ранните фази на зареждане и стартиране) като root и всички последващи инициализирани услуги като разширения на функционалността на системната услуга , директно или преходно спрямо други услуги.

Тъй като е написан и конфигуриран в Guile Scheme, GNU Shepherd е проектиран да бъде лесно програмируем от системния администратор, но може да се използва и за управление на потребителски профили на непривилегировани демони и услуги.

Неговите услуги и конфигурация се съхраняват унифицирано като обектно-ориентиран Scheme код и въпреки че с основната система Guix се предоставя основен набор от услуги, произволни нови услуги могат да бъдат декларирани гъвкаво, а чрез обектната система на Guile, GOOPS, съществуващите услуги могат да бъдат предефинирани по преценка на потребителя, като се поиска от Shepherd динамично да пренапише услугите по специфични начини при създаване на инстанции.

Първоначално GNU Shepherd е проектиран да работи с GNU Hurd и по-късно е приет от системата Guix.

Основни нови функции на GNU Shepherd 0.9

Тази нова версия подчертава имплементацията на концепцията за временни (преходни) услуги, които автоматично се изключват след прекратяване поради прекратяване на процес или извикване на метода „stop“, което може да е необходимо за синтезирани услуги, които не могат да бъдат рестартирани след прекратяване.

Друга забележителна промяна е, че за услуги без параметъра "#:log-file" , изходът се предоставя на syslog , а за услуги с параметъра "#:log-file", логът се записва в отделен файл, указващ времето на логовете в непривилегирования процес Shepherd, който се съхранява в директорията $XDG_DATA_DIR.

В допълнение, трябва да се отбележи, че процедурата "make-inetd-constructor" беше добавена за създаване на услуги, подобни на inetd, и че процедурата "make-systemd-constructor" беше добавена за създаване на услуги, които се активират в мрежова активност (стил systemd socket активиране).

Други забележителни промени в тази нова версия включват:

  • Добавена е процедура за стартиране на фоновата услуга:
  • Добавени параметри „:supplementary-groups“, „#:create-session“ и „#:resource-limits“ към процедурата „make-forkexec-constructor“.
  • Гарантирана работа без заключване, докато чакате PID файлове.
  • Премахната поддръжка за компилиране с Guile 2.0. Отстранени проблеми при използване на Guile версии 3.0.5-3.0.7.
  • Библиотеката Fibers 1.1.0 или по-нова версия вече е необходима за работа.
  • Подобрена документация и примери
  • Shepherd вече не може да бъде създаден с Guile 2.0
  • Поправете грешка в компилатора на Guile 3.0.[5-7]
  • Актуализирани преводи

Накрая, ако се интересувате да научите повече или искате да получите тази нова версия, можете да прегледате подробностите, документацията и да я изтеглите от следния линк.


Добавяне като предпочитан източник в Google