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

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

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

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

  • Добавлены новые промежуточные состояния сервисов — «starting» и «stopping», отображаемые при выполнении команды «herd status» и определяющие нахождение сервиса в процессе запуска или остановки (ранее поддерживались только состояния «running» и «stopped»).

  • Обеспечена блокировка повторного выполнения операций «start» и «stop», если сервис уже запущен или остановлен (ранее выполнение «herd start SERVICE» приводило к попытке запуска второго экземпляра сервиса).

  • Для сервисов, запускаемых в режиме «start-in-the-background», а также для зависимостей,

  • Обеспечено распараллеливание запуска зависимостей и сервисов, запускаемых в режиме «start-in-the-background».

  • Реализован учёт времени сбоев и изменений состояний каждого сервиса. Накопленная статистика показывается при выполнении команды «herd status».
  • Добавлена команда «herd log» для показа сводного лога событий и списка всех изменений состояния сервиса.

  • Добавлена команда «herd graph» для генерации данных, позволяющих при помощи Graphviz («herd graph | xdot -») отобразить наглядный граф зависимостей.

  • Реализовано цветное подсвечивание вывода команды herd.

  • Добавлены новые сервисы: «monitoring» для отслеживания потребления ресурсов процессом shepherd и «repl» для запуска отладочного интерфейса REPL (read-eval-print loop).

  • Объявлен устаревшим интерфейс GOOPS (Guile«s Object-Oriented Programming System).



Источник: http://www.opennet.ru/opennews/art.shtml? num=59131

© OpenNet