Опубликован сервисный менеджер GNU Shepherd 0.9.2 (бывший dmd), который развивается разработчиками дистрибутива GNU Guix System в качестве альтернативы системе инициализации SysV-init, поддерживающей зависимости. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется для определения настроек и параметров запуска сервисов. Shepherd уже применяется в дистрибутиве GuixSD GNU/Linux и нацелен также на использование в GNU/Hurd, но может работать в любой POSIX-совместимой ОС, для которой доступен язык Guile.
شپرد کار شروع و توقف خدمات را با در نظر گرفتن روابط بین سرویس ها انجام می دهد، به صورت پویا خدماتی را که سرویس انتخابی به آن بستگی دارد، شناسایی و شروع می کند. Shepherd همچنین از شناسایی تضاد بین سرویس ها و جلوگیری از اجرای همزمان آنها پشتیبانی می کند. این پروژه می تواند هم به عنوان سیستم اولیه اولیه (init با PID 1) و هم در یک فرم جداگانه برای مدیریت فرآیندهای پس زمینه تک تک کاربران (به عنوان مثال برای اجرای tor، خصوصی، mcron و غیره) با اجرا با حقوق استفاده شود. از این کاربران
از جمله تغییرات:
- Используемые в Shepherd файловые дескрипторы теперь помечаются флагом O_CLOEXEC (close-on-exec), а не закрываются сразу при выполнении «exec-command», что позволяет передавать дескрипторы сервисам, запущенным не напрямую, а при помощи «exec-command».
- Клиентские соединения теперь обрабатываются в неблокирующем режиме, что позволяет исключить зависание shepherd при отправке неполной команды.
- Обеспечено создание каталога для лог-файлов, определённых в настройке «log-file», в случае его отсутствия.
منبع: opennet.ru