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

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

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

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

  • У make-kill-destructor реалізовано вбивання групи процесів;
  • Додано параметр "default-pid-file-timeout", який визначає час очікування створення PID-файлу;
  • Якщо PID-файл не з'явився протягом таймууту забезпечено завершення всієї групи процесів (вирішує проблему із залишенням робочих процесів без PID-файлу);
  • У «make-forkexec-constructor» додано параметр «#:file-creation-mask», реалізовано створення лог-файлів та припинено підтримку старої угоди про виклики;
  • Вирішено проблеми з компіляцією на системах без prctl, таких як GNU/Hurd;
  • Усунуто недоопрацювання, що призводило до відправки SIGALRM кожну секунду.

Джерело: opennet.ru

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