Veröffentlichung des GNU Shepherd 0.8 Init-Systems

Verfügbar Service Manager GNU Shepherd 0.8 (ehemaliger dmd), das von den Entwicklern der GNU Guix System-Distribution als abhängigkeitsbewusste Alternative zum SysV-init-Initialisierungssystem entwickelt wird. 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 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 von verwendet werden diese Benutzer. Shepherd übernimmt die Arbeit des Startens und Stoppens von Diensten, 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.

Wichtigste Neuerungen:

  • Make-kill-destructor implementiert das Beenden einer Gruppe von Prozessen;
  • Parameter „default-pid-file-timeout“ hinzugefügt, der die Wartezeit für die Erstellung einer PID-Datei bestimmt;
  • Wenn die PID-Datei nicht innerhalb des Timeouts erscheint, wird die gesamte Prozessgruppe beendet (entscheidet). das problem Verlassen von Arbeitsprozessen ohne PID-Datei);
  • Parameter „#:file-creation-mask“ zu „make-forkexec-constructor“ hinzugefügt, Protokolldateierstellung implementiert und die Unterstützung der alten Aufrufkonvention eingestellt;
  • Probleme mit der Kompilierung auf Systemen ohne prctl, wie GNU/Hurd, behoben;
  • Es wurde ein Problem behoben, das dazu führte, dass SIGALRM jede Sekunde gesendet wurde.

Source: opennet.ru

Kommentar hinzufügen