GNU Shepherd, сервис-менеджер, разработанный Guix.

После двух лет формирования последней основной версии, было объявлено, когда он опубликовал запуск новая версия сервис-менеджера Пастырь GNU 0.9 (ранее известный как dmd), который в настоящее время разработан разработчиками дистрибутива GNU Guix в качестве альтернативы инициализации SysV-init с учетом системных зависимостей.

Пастух предоставляет функциональные возможности пользовательского пространства асинхронно в качестве сервисов, которые в Shepherd являются общими функциями и объектными типами данных, которые экспортируются для использования Shepherd для расширения базовой операционной системы определенным образом. В отличие от systemd, процесс мониторинга пользовательского пространства запускается от имени этого пользователя.



О овчарке

В основе модели инициализации пользовательского пространства Shepherd лежит концепция расширения, форма компонуемости, при которой службы предназначены для наложения других служб, дополняя их более сложным или специализированным поведением по желанию. Это выражает отношения зависимости, основанные на инстанцировании, которые можно найти во многих современных системах загрузки. делает систему модульной, но также позволяет сервисам по-разному взаимодействовать друг с другом услуги произвольно.



Пастух также предоставляет так называемые виртуальные услуги которые обеспечивают динамическую отправку класса связанных сервисных объектов, таких как те, которые создают экземпляр агента пересылки почты (MTA) для системы.

Система, управляемая демоном Shepherd, может представлять свое пользовательское пространство в виде направленного ациклического графа с «системной службой» (отвечающей за этапы ранней загрузки и запуска) в качестве корня, а все последующие инициализированные службы — в виде расширений функциональности системной службы. , либо напрямую, либо транзитивно через другие сервисы.



Будучи написанным и настроенным в Guile Scheme, GNU Shepherd спроектирован так, чтобы его можно было легко программировать. системным администратором, но также может использоваться для управления пользовательскими профилями непривилегированных демонов и служб.

Ваши услуги и настройки единообразно хранятся в виде кода схемы объектно-ориентированный, и хотя базовый набор сервисов предоставляется с базовой системой Guix, произвольные новые сервисы могут быть гибко объявлены, а с помощью объектной системы Guile, GOOPS, существующие сервисы могут быть переопределены по усмотрению пользователя, попросив Shepherd динамически переписывать сервисы в конкретные способы создания экземпляров.

GNU Shepherd изначально был разработан для работы с GNU Hurd, а затем был принят системой Guix.



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

В представленной новой версии подчеркивается, что реализована концепция временных услуг (transient), которые автоматически отключаются после завершения из-за завершения процесса или вызова метода «stop», что может потребоваться для синтезированных сервисов, которые невозможно перезапустить после завершения.

Еще одно выделяющееся изменение: для сервисов без параметра «»#:log-file», предусмотрен вывод в системный журнал а для сервисов с параметром «#:log-file» лог записывается в отдельный файл с указанием времени логов в непривилегированном процессе Shepherd, который хранится в каталоге $XDG_DATA_DIR.



Кроме того, следует отметить добавление процедуры «make-inetd-constructor» для создания служб, аналогичных inetd, и добавление процедуры «make-systemd-constructor» для создания служб, активируемых в сетевой активности (стиль systemd socket активация).

Из других изменений которые выделяются из этой новой версии:

  • Добавлена ​​процедура запуска фоновой службы:
  • В процедуру make-forkexec-constructor добавлены параметры «:supplementary-groups», «#:create-session» и «#:resource-limits».
  • Гарантированная работа без блокировки при ожидании файлов PID.
  • Удалена поддержка компиляции с Guile 2.0. Исправлены проблемы при использовании Guile версий 3.0.5-3.0.7.
  • Теперь для работы требуется библиотека Fibers версии 1.1.0 или выше.
  • Улучшенная документация и примеры
  • Shepherd больше нельзя построить с помощью Guile 2.0.
  • Исправлена ​​ошибка компилятора Guile 3.0.[5-7]
  • Обновленные переводы

В конце концов если вам интересно узнать об этом больше или вы хотите получить эту новую версию, вы можете ознакомиться с подробностями, документацией и скачать с по следующей ссылке.




2022-04-10T04:54:42
приложений