Випуск системи ініціалізації 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 виконує роботу із запуску та зупинки сервісів, враховуючи взаємозв'язок між сервісами, динамічно визначаючи та запускаючи сервіси, від яких залежить обраний сервіс. Shepherd також підтримує визначення конфліктів між сервісами та запобігає їх одночасному виконанню. Проект може використовуватися як у ролі основної системи ініціалізації (init c PID 1), так і в відокремленому вигляді для керування фоновими процесами окремих користувачів (наприклад, для запуску tor, privoxy, mcron тощо) з виконанням прав користувачів.

Серед змін:

  • Файлові дескриптори, що використовуються в Shepherd, тепер позначаються прапором O_CLOEXEC (close-on-exec), а не закриваються відразу при виконанні «exec-command», що дозволяє передавати дескриптори сервісам, запущеним не безпосередньо, а за допомогою «exec-command».
  • Клієнтські з'єднання тепер обробляються в режимі неблокування, що дозволяє виключити зависання shepherd при відправці неповної команди.
  • Забезпечено створення каталогу для лог-файлів, визначених у налаштуванні "log-file", у разі його відсутності.

Джерело: opennet.ru

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