Shepherd написан на языке Guile.
Это сервис, который управляет другими сервисами.
В отличие от аналогов - systemd, openrc, sysvinit - Shepherd имеет свои особенности, которые можно отнести как к преимуществам, так и к недостаткам, в зависимости от критериев оценки.
Особенности Shepherd:
- поиск конфликтующих сервисов и борьба с конфликтами. Shepherd предотвращает запуск конфликтующих сервисов,
- разрешение зависимостей (при запуске сервиса веб-сервер, зависящего от networking, вначале запускается networking),
- виртуальные сервисы (сервис может предлагать дополнительные сервисы, доступные по собственным именам, виртуальные сервисы могут предлагать различные сервисы (пакеты). Shepherd обращается к нужному виртуальному сервису в зависимости от аргументов, используемых при обращении к сервису),
- деактивация падающх сервисов (в случае более 5 падений сервиса за 5 секунд Shepherd останавливает и блокирует сервис),
- не работающий Runlevels,
- для конфигурирования сервисов используется язык Scheme,
- очень скудная документация.
Подробнее: https://www.gnu.org/software/shepherd/manual/shepherd.html
Как по-вашему это работает?
От себя отмечу, что guixsd на shepherd загружается очень быстро.