Veröffentlichung des Service Managers s6-rc 0.5.3.0 und des Initialisierungssystems s6-linux-init 1.0.7

Eine bedeutende Version des Service Managers s6-rc 0.5.3.0 wurde vorbereitet, um den Start von Initialisierungsskripten und -diensten unter Berücksichtigung von Abhängigkeiten zu verwalten. Das s6-rc-Toolkit kann sowohl in der Initialisierung von Systemen als auch zur Organisation des Starts beliebiger Dienste im Zusammenhang mit Ereignissen verwendet werden, die Änderungen im Systemzustand widerspiegeln. Bietet vollständige Abhängigkeitsbaumverfolgung und automatisches Starten oder Herunterfahren von Diensten, um einen bestimmten Status zu erreichen. Der Code ist in C geschrieben und wird unter der ISC-Lizenz vertrieben.

Der s6-rc-Dienstmanager, der als Analogon zu sysv-rc oder OpenRC betrachtet werden kann, enthält eine Reihe von Dienstprogrammen zum Starten und Stoppen lang laufender Prozesse (Daemons) oder sofort beendeter Initialisierungsskripte. Bei der Arbeit werden Abhängigkeiten zwischen Komponenten berücksichtigt, der parallele Start von Skripten und Diensten, die sich nicht überschneiden, sichergestellt und die Reihenfolge der Skriptausführung wird bei verschiedenen Starts garantiert wiederholt. Alle Statusänderungen werden unter Berücksichtigung von Abhängigkeiten verarbeitet, um sicherzustellen, dass Abhängigkeiten nicht verletzt werden (wenn beispielsweise ein Dienst gestartet wird, werden die für seinen Betrieb erforderlichen Abhängigkeiten automatisch gestartet, und wenn er gestoppt wird, werden auch abhängige Dienste gestoppt).

Anstelle von Runlevels bietet s6-rc ein universelleres Bundle-Konzept, das es ermöglicht, Dienste nach beliebigen Merkmalen und zu lösenden Aufgaben zu gruppieren. Um die Arbeitseffizienz zu verbessern, wird eine kompilierte Abhängigkeitsbasis verwendet, die vom Dienstprogramm s6-rc-compile basierend auf dem Inhalt von Verzeichnissen mit Dateien zum Starten/Stoppen von Diensten erstellt wird. Zum Parsen und Bearbeiten der Datenbank werden die Dienstprogramme s6-rc-db und s6-rc-update angeboten. Das System unterstützt sysv-init-kompatible Init-Skripte und kann Abhängigkeitsinformationen von sysv-rc oder OpenRC importieren.

Zu den Vorteilen von s6-rc gehört eine kompakte Implementierung, die außer Komponenten zur Lösung direkter Probleme nichts Überflüssiges enthält und ein Minimum an Ressourcen verbraucht. Im Gegensatz zu anderen Service-Managern unterstützt s6-rc die proaktive (Offline-)Erstellung eines Abhängigkeitsdiagramms für einen vorhandenen Satz von Services, wodurch Sie ressourcenintensive Abhängigkeitsanalysen separat und nicht während des Ladens oder von Statusänderungen durchführen können. Gleichzeitig ist das System nicht monolithisch und in eine Reihe separater und austauschbarer Module unterteilt, die gemäß der Unix-Philosophie jeweils nur eine bestimmte Aufgabe lösen.

In Kombination mit S6-Dienstprogrammen, die den Betrieb von Prozessen überwachen (analog zu Daemontools und Runit), können Sie mit dem Toolkit gleichzeitig den Betrieb lang laufender Dienste überwachen, sie beispielsweise bei abnormalen Abbrüchen neu starten und sicherstellen, dass eine Reihenfolge eingehalten wird Die Anzahl der Befehle wird in reproduzierbarer Form gestartet und bei verschiedenen Starts wiederholt. Zu den unterstützten Funktionen gehören die Aktivierung eines Dienstes beim Zugriff auf einen Socket (Start eines Handlers beim Zugriff auf einen Netzwerkport), die Protokollierung von Prozessereignissen (ersetzt syslogd) und die kontrollierte Gewährung zusätzlicher Berechtigungen (analog zu sudo).

Gleichzeitig ist die Veröffentlichung des Pakets s6-linux-init 1.0.7.0 verfügbar, das eine Implementierung des Init-Prozesses zum Aufbau vorgefertigter Init-Systeme für Betriebssysteme bietet, die auf dem Linux-Kernel basieren, in dem s6 und s6 enthalten sind -rc-Dienstprogramme werden zum Verwalten von Diensten und Initialisierungsskripten verwendet. Gleichzeitig sind s6 und s6-rc nicht an s6-linux-init gebunden und können auf Wunsch mit beliebigen Initialisierungssystemen verwendet werden.

Darüber hinaus bietet das Projekt:

  • s6-networking ist eine Reihe von Dienstprogrammen zum Erstellen von Netzwerkdiensten, ähnlich wie ucspi.
  • s6-frontend – ein Framework zur Wiederherstellung der Funktionalität von daemontools und runit auf s6.
  • s6-portable-utils ist eine Reihe von Standard-Unix-Dienstprogrammen wie cut, chmod, ls, sort und grep, die für minimalen Ressourcenverbrauch optimiert sind und unter der ISC-Lizenz bereitgestellt werden.
  • s6-linux-utils – Eine Reihe Linux-spezifischer Dienstprogramme wie chroot, freeramdisk, logwatch, mount und swapon.
  • s6-dns ist eine Reihe von Client-Bibliotheken und Dienstprogrammen, die die Standard-DNS-Dienstprogramme von BIND und djbdns ersetzen.

In der neuen Version von s6-rc implementiert das Dienstprogramm s6-rc-compile das Lesen von Daten über Abhängigkeiten und Dienstsätze aus Verzeichnissen statt aus Dateien. Die Verwendung von Verzeichnissen vereinfacht das Hinzufügen von Diensten zur Datenbank mit Informationen zu Abhängigkeiten bei der Installation von Programmen über einen Paketmanager, da Sie auf Änderungen an Dateien verzichten können. Die Unterstützung des alten dateibasierten Formats wurde beibehalten, um die Kompatibilität sicherzustellen. In der neuen Version von s6-linux-init wurde die Option „-S“ zum Dienstprogramm s6-linux-init-maker zum Synchronisieren von Daten in Containern hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen