Випуск системи ініціалізації GNU Shepherd 0.6

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

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

Основні нововведення:

  • Доданий режим роботи сервісів один постріл,
    при якому сервіс відразу після успішного запуску позначається зупиненим, що може знадобитися для запуску одноразових робіт перед іншими сервісами, наприклад, для чищення або ініціалізації;

  • Забезпечено видалення файлів із сокетами після завершення роботи
    shepherd;

  • Команда herd stop тепер не виводить помилку при виконанні над вже зупиненим сервісом;
  • Утиліта herd тепер повертає ненульовий код повернення у разі збою запуску завдання;
  • У разі запуску у контейнері забезпечено ігнорування пов'язаних із завантаженням помилок.

Джерело: opennet.ru

Додати коментар або відгук