Выпуск системы инициализации GNU Shepherd 0.5

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

Shepherd может использоваться как в роли основной системы инициализации (init c PID 1), так и в обособленном виде для управления фоновыми процессами отдельных пользователей (например, для запуска tor, privoxy, mcron и т.п.) с выполнением с правами данных пользователей. Shepherd выполняет работу по запуску и остановке сервисов, учитывая взаимосвязь между сервисами, динамически определяя и запуская сервисы, от которых зависит выбранный сервис.

Shepherd также поддерживает определение конфликтов между сервисами и предотвращает их одновременное выполнение. Shepherd уже применяется в дистрибутиве GuixSD GNU/Linux и нацелен также на использование в GNU/Hurd, но может работать в любой POSIX-совместимой ОС, для которой доступен язык Guile.

Основные новшества:

  • Добавлена возможность определения замены сервисов;
  • При перезапуске сервиса теперь перезапускаются и все зависимые от него сервисы;
  • Добавлен режим мягкого завершения работы (gracefull) при нажатии ctrl-alt-del (работает только при запуске как PID 1 в GNU/Linux);
  • Реализована поддержка запуска действий для сервисов, не запущенных в текущий момент;
  • Добавлена поддержка Guile 3.0. Для работы теперь требуется как минимум Guile 2.0.13;
  • Удалён неиспользуемый код с реализацией уровней запуска (runlevel).

© OpenNet