Service-Manager (), das von den Entwicklern der GuixSD GNU/Linux-Distribution als unterstützende Abhängigkeit zur SysV-init-Init-System entwickelt wird. Der verwaltende Daemon und die Utilities von Shepherd sind in Guile geschrieben (eine der Implementierungen der Sprache Scheme), die auch zur Definition von Einstellungen und Startparametern für Dienste verwendet wird. Shepherd wird bereits in der GuixSD GNU/Linux-Distribution eingesetzt und ist auch für die Verwendung in GNU/Hurd konzipiert, kann jedoch in jedem POSIX-kompatiblen Betriebssystem betrieben werden, für das die Sprache 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:
- Modus für Dienstbetrieb hinzugefügt ,
bei dem der Dienst unmittelbar nach erfolgreichem Start als gestoppt markiert wird, was für die Durchführung einmaliger Arbeiten vor anderen Diensten erforderlich sein kann, zum Beispiel zur Durchführung von Bereinigungen oder zur Initialisierung; - Die Entfernung von Dateien mit Sockets nach Abschluss der Arbeit ist gewährleistet.
shepherd; - Der Befehl „herd stop“ gibt jetzt keinen Fehler mehr aus, wenn er bei einem bereits gestoppten Dienst ausgeführt wird;
- Das Tool herd gibt jetzt einen ungleich null Rückgabecode zurück, wenn der Start der Aufgabe fehlschlägt;
- Im Falle des Starts in einem Container wird das Ignorieren von ladebezogenen Fehlern gewährleistet.
Quelle: opennet.ru
