Service-Manager (), die von den Entwicklern der GNU Guix System-Distribution als unterstützende Abhängigkeit zum SysV-init System entwickelt wird. Der Steuerdaemon und die Utilities von Shepherd sind in Guile (eine der Implementierungen der Sprache Scheme) geschrieben, die auch verwendet wird, um die Einstellungen und Startparameter der Dienste zu definieren. Shepherd wird bereits in der GNU/Linux-Distribution GuixSD eingesetzt und soll auch in GNU/Hurd verwendet werden, kann jedoch in jeder POSIX-kompatiblen OS betrieben werden, für die die Programmiersprache Guile verfügbar ist.
Shepherd kann sowohl als primäres Initialisierungssystem (init mit PID 1) als auch in isolierter Form zur Verwaltung von Hintergrundprozessen einzelner Benutzer (zum Beispiel zum Starten von tor, privoxy, mcron usw.) mit den Rechten der jeweiligen Benutzer verwendet werden. Shepherd kümmert sich um das Starten und Stoppen von Services, indem es die Beziehungen zwischen den Services berücksichtigt, und bestimmt dynamisch die Services, die vom gewählten Service abhängen, und startet diese. Shepherd unterstützt auch die Definition von Konflikten zwischen Services und verhindert deren gleichzeitige Ausführung.
Hauptneuheiten:
- In make-kill-destructor wurde die Beendigung einer Gruppe von Prozessen implementiert;
- Ein Parameter „default-pid-file-timeout“ wurde hinzugefügt, der die Wartezeit für die Erstellung der PID-Datei definiert;
- Wenn die PID-Datei innerhalb des Zeitlimits nicht erstellt wird, wird die gesamte Gruppe von Prozessen beendet (löst die Situation mit laufenden Prozessen ohne PID-Datei);
- Im „make-forkexec-constructor“ wurde der Parameter „#:file-creation-mask“ hinzugefügt, es wurden Log-Dateien erstellt und die Unterstützung für das alte Aufrufprotokoll eingestellt;
- Die Kompilierungsprobleme auf Systemen ohne prctl, wie GNU/Hurd, wurden behoben;
- Ein Mangel wurde behoben, der dazu führte, dass SIGALRM jede Sekunde gesendet wurde.
Quelle: opennet.ru
