Service-Manager (), das von den Entwicklern der GNU Guix System-Distribution als unterstützende Abhängigkeit zu SysV-init entwickelt wird. Der managing Daemon und die Utilities von Shepherd sind in Guile geschrieben (einer der Implementierungen der Scheme-Sprache), die auch verwendet wird, um die Einstellungen und Startparameter der Dienste festzulegen. Shepherd wird bereits in der GuixSD GNU/Linux Distribution eingesetzt und ist auch für GNU/Hurd vorgesehen, kann jedoch in jedem POSIX-kompatiblen OS arbeiten, für das Guile verfügbar ist.
Shepherd kann sowohl als Hauptinit-System (init mit PID 1) als auch in isolierter Form zur Verwaltung von Hintergrundprozessen einzelner Benutzer verwendet werden (z. B. zum Starten von tor, privoxy, mcron usw.) und läuft mit den Rechten dieser Benutzer. Shepherd kümmert sich um das Starten und Stoppen von Diensten, berücksichtigt die Beziehungen zwischen den Diensten und definiert sowie startet dynamisch die Dienste, von denen der ausgewählte Dienst abhängt. Außerdem unterstützt Shepherd die Definition von Konflikten zwischen Diensten und verhindert deren gleichzeitige Ausführung.
Hauptneuheiten:
- В make-kill-destructor реализовано убивание группы процессов;
- Добавлен параметр «default-pid-file-timeout», определяющий время ожидания создания PID-файла;
- Если PID-файл не появился в течение таймаута обеспечено завершение всей группы процессов (решает с оставлением рабочих процессов без PID-файла);
- В «make-forkexec-constructor» добавлен параметр «#:file-creation-mask», реализовано создание лог-файлов и прекращена поддержка старого соглашения о вызовах;
- Решены проблемы с компиляцией на системах без prctl, таких как GNU/Hurd;
- Устранена недоработка, приводившая к отправке SIGALRM каждую секунду.
Quelle: opennet.ru
