Wydanie systemu init GNU Shepherd 0.9.2

Опубликован сервисный менеджер GNU Shepherd 0.9.2 (бывший dmd), который развивается разработчиками дистрибутива GNU Guix System в качестве альтернативы системе инициализации SysV-init, поддерживающей зависимости. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется для определения настроек и параметров запуска сервисов. Shepherd уже применяется в дистрибутиве GuixSD GNU/Linux и нацелен также на использование в GNU/Hurd, но может работать в любой POSIX-совместимой ОС, для которой доступен язык Guile.

Shepherd wykonuje pracę polegającą na uruchamianiu i zatrzymywaniu usług, biorąc pod uwagę relacje między usługami, dynamicznie identyfikując i uruchamiając usługi, od których zależy wybrana usługa. Shepherd obsługuje także wykrywanie konfliktów pomiędzy usługami i zapobieganie ich jednoczesnemu działaniu. Projekt może służyć zarówno jako główny system inicjujący (init z PID 1), jak i w osobnej formie do zarządzania procesami w tle poszczególnych użytkowników (na przykład do uruchamiania tora, privoxy, mcron itp.) z wykonaniem z uprawnieniami tych użytkowników.

Wśród zmian:

  • Используемые в Shepherd файловые дескрипторы теперь помечаются флагом O_CLOEXEC (close-on-exec), а не закрываются сразу при выполнении «exec-command», что позволяет передавать дескрипторы сервисам, запущенным не напрямую, а при помощи «exec-command».
  • Клиентские соединения теперь обрабатываются в неблокирующем режиме, что позволяет исключить зависание shepherd при отправке неполной команды.
  • Обеспечено создание каталога для лог-файлов, определённых в настройке «log-file», в случае его отсутствия.

Źródło: opennet.ru

Dodaj komentarz