мениджър на услуги (), разработван от разработчиците на дистрибуцията GuixSD GNU/Linux като поддържаща зависимост на алтернативната система за инициализация SysV-init. Управляващият демон и утилитите на Shepherd са написани на езика Guile (една от реализациите на езика Scheme), който също се използва за определяне на настройките и параметрите за стартиране на услугите. Shepherd вече се използва в дистрибуцията GuixSD GNU/Linux и е насочен и към използване в GNU/Hurd, но може да работи и в яка съвместима с POSIX система, за която е наличен езикът Guile.
Shepherd може да се използва както като основна система за инициализация (init c PID 1), така и в отделен вид за управление на фонови процеси на отделни потребители (например, за стартиране на tor, privoxy, mcron и т.н.) с изпълнение с правата на съответните потребители. Shepherd изпълнява работата по стартиране и спиране на услуги, отчитайки взаимовръзките между тях и динамично определя и стартира услуги, от които зависи избраната услуга. Shepherd също така поддържа определяне на конфликти между услуги и предотвратява тяхното едновременно изпълнение.
Основни нововъведения:
- Добавен режим на работа на услугите ,
при който услугата веднага след успешното стартиране се маркира като спряна, което може да е необходимо за отпускането на еднократни задачи преди други услуги, например за извършване на почистване или инициализация; - Осигурено е изтриването на файлове със сокети след приключване на работата
shepherd; - Командата „herd stop“ вече не извежда грешка при изпълнение над вече спряна услуга;
- Утилитата herd сега връща ненулев код на грешка в случай на неуспех при стартиране на задачата;
- В случай на стартиране в контейнер, е осигурено игнориране на свързани с товарните грешки.
Източник: opennet.ru
