GNU Shepherd
![]() | |
| Тип | init daemon |
|---|---|
| Автор | Ludovic Courtès |
| Розробник | Free Software Foundation |
| Перший випуск | 10 2012 |
| Операційна система | GNU/Hurd,Linux |
| Мова програмування | Guile (Scheme Lisp) |
| Ліцензія | GNUv3 |
| Онлайн-документація | gnu.org/software/shepherd/manual/ |
| Репозиторій | git.savannah.gnu.org/cgit/shepherd.git |
| Вебсайт | GNU Shepherd, Savannah Git Hosting |
GNU Shepherd (колишній 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 також підтримує визначення конфліктів між сервісами і запобігає їхньому одночасному виконанню.

