Service-Manager (), der von den Entwicklern der GuixSD GNU/Linux-Distribution als unterstützende Abhängigkeit zu SysV-init entwickelt wird. Der verwaltende Daemon und die Utilities Shepherd sind in der Sprache Guile (eine der Implementierungen der Sprache Scheme) geschrieben, die auch zur Definition der Konfigurationen und Startparameter für Services verwendet wird. Shepherd wird bereits in der GuixSD GNU/Linux-Distribution eingesetzt und ist auch für die Verwendung in GNU/Hurd vorgesehen, kann jedoch in jedem POSIX-kompatiblen Betriebssystem betrieben werden, für das die Sprache 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:
- Ein Betriebsmodus für Services wurde hinzugefügt ,
, bei dem der Service sofort nach erfolgreichem Start als gestoppt gekennzeichnet wird, was für das Starten von einmaligen Arbeiten vor anderen Services erforderlich sein kann, beispielsweise zur Durchführung von Bereinigungen oder zur Initialisierung; - Die Entfernung von Dateien mit Sockets nach dem Abschluss der Arbeit wurde sichergestellt
shepherd; - Der Befehl „herd stop“ gibt jetzt keinen Fehler mehr aus, wenn er für einen bereits gestoppten Service ausgeführt wird;
- Das Utility herd gibt jetzt einen Nicht-Null-Rückgabewert im Falle eines Fehlers beim Starten der Aufgabe zurück;
- Bei der Ausführung in einem Container wird sichergestellt, dass beim Laden auftretende Fehler ignoriert werden.
Quelle: opennet.ru
