Veröffentlichung des GNU Shepherd 0.9 Init-Systems

Zwei Jahre nach der Veröffentlichung der letzten bedeutenden Version wurde der Service Manager GNU Shepherd 0.9 (ehemals dmd) veröffentlicht, der von den Entwicklern der GNU Guix System-Distribution als Alternative zum SysV-init-Initialisierungssystem entwickelt wird, das Abhängigkeiten unterstützt . Der Shepherd-Steuerungsdämon und die Dienstprogramme sind in der Guile-Sprache (einer der Implementierungen der Scheme-Sprache) geschrieben, die auch zum Definieren von Einstellungen und Parametern zum Starten von Diensten verwendet wird. Shepherd wird bereits in der GuixSD-GNU/Linux-Distribution verwendet und ist auch auf den Einsatz in GNU/Hurd ausgerichtet, kann aber auf jedem POSIX-kompatiblen Betriebssystem ausgeführt werden, für das die Guile-Sprache verfügbar ist.

Shepherd übernimmt die Aufgabe, Dienste zu starten und zu stoppen, indem es die Beziehungen zwischen Diensten berücksichtigt und die Dienste, von denen der ausgewählte Dienst abhängt, dynamisch identifiziert und startet. Shepherd unterstützt auch das Erkennen von Konflikten zwischen Diensten und das Verhindern der gleichzeitigen Ausführung dieser Dienste. Das Projekt kann sowohl als Hauptinitialisierungssystem (Init mit PID 1) als auch in separater Form zur Verwaltung von Hintergrundprozessen einzelner Benutzer (z. B. zum Ausführen von Tor, Privoxy, Mcron usw.) mit Ausführung mit den Rechten verwendet werden dieser Benutzer.

Wichtigste Neuerungen:

  • Das Konzept temporärer Dienste (transient) ist implementiert und wird nach Abschluss aufgrund der Beendigung des Prozesses oder des Aufrufs der „Stopp“-Methode automatisch deaktiviert, was für synthetisierte Dienste erforderlich sein kann, die nach dem Herunterfahren nicht neu gestartet werden können.
  • Um inetd-ähnliche Dienste zu erstellen, wurde die Prozedur „make-inetd-constructor“ hinzugefügt.
  • Um Dienste zu erstellen, die während der Netzwerkaktivität aktiviert werden (im Systemd-Socket-Aktivierungsstil), wurde die Prozedur „make-systemd-constructor“ hinzugefügt.
  • Verfahren zum Starten eines Dienstes im Hintergrund hinzugefügt – „im Hintergrund starten“.
  • Parameter „:supplementary-groups“, „#:create-session“ und „#:resource-limits“ zur Prozedur „make-forkexec-constructor“ hinzugefügt.
  • Aktivierter Betrieb ohne Blockierung beim Warten auf PID-Dateien.
  • Bei Diensten ohne den Parameter „#:log-file“ wird eine Ausgabe an syslog bereitgestellt, und bei Diensten mit dem Parameter „#:log-file“ wird das Protokoll in eine separate Datei geschrieben, die den Zeitpunkt der Aufzeichnungen angibt. Protokolle des unprivilegierten Shepherd-Prozesses werden im Verzeichnis $XDG_DATA_DIR gespeichert.
  • Die Unterstützung für das Erstellen mit Guile 2.0 wurde eingestellt. Probleme bei der Verwendung der Guile-Versionen 3.0.5-3.0.7 wurden behoben.
  • Zum Funktionieren ist jetzt die Fibers-Bibliothek 1.1.0 oder neuer erforderlich.

Source: opennet.ru

Kommentar hinzufügen