Die Veröffentlichung des Service-Managers s6-rc 0.5.3.0 und des Init-Systems s6-linux-init 1.0.7

Es wurde eine bedeutende Version des Service-Managers s6-rc 0.5.3.0 vorbereitet, die für die Verwaltung des Starts von Initialisierungsskripten und Diensten unter Berücksichtigung von Abhängigkeiten bestimmt ist. Das Werkzeug s6-rc kann sowohl in Initialisierungssystemen als auch zur Organisation des Starts beliebiger Dienste in Bezug auf Ereignisse eingesetzt werden, die eine Änderung des Systemzustands widerspiegeln. Es wird eine vollständige Verfolgung des Abhängigkeitsbaums und ein automatischer Start oder Stopp von Diensten zur Erreichung des angegebenen Zustands bereitgestellt. Der Code ist in C geschrieben und unter der ISC-Lizenz lizenziert.

Der Service-Manager s6-rc, der als Pendant zu sysv-rc oder OpenRC betrachtet werden kann, umfasst eine Sammlung von Dienstprogrammen zum Starten und Stoppen von langlaufenden Prozessen (Dächern) oder sofort beendbaren Initialisierungsskripten. Im Verlauf des Betriebs werden die Abhängigkeiten zwischen den Komponenten berücksichtigt, der parallele Start nicht überlappender Skripte und Dienste wird gewährleistet, und es wird sichergestellt, dass die Ausführungsreihenfolge der Skripte bei verschiedenen Starts gleich bleibt. Alle Zustandsänderungen werden unter Berücksichtigung der Abhängigkeiten verarbeitet, wobei darauf geachtet wird, dass die Abhängigkeiten nicht verletzt werden (zum Beispiel werden beim Start eines Dienstes automatisch die erforderlichen Abhängigkeiten für dessen Betrieb gestartet und beim Stoppen werden die abhängigen Dienste ebenfalls gestoppt).

Anstelle von Runlevels in s6-rc wird ein universelleres Konzept von Bundles vorgeschlagen, das es ermöglicht, Dienste nach beliebigen Merkmalen und zu lösenden Aufgaben zu gruppieren. Um die Effizienz zu steigern, wird eine kompilierte Abhängigkeitsdatenbank verwendet, die mit dem Tool s6-rc-compile auf der Grundlage des Inhalts von Verzeichnissen mit Dateien zum Starten/Stoppen von Diensten erstellt wird. Für die Analyse und Manipulation der Datenbank stehen die Werkzeuge s6-rc-db und s6-rc-update zur Verfügung. Das System unterstützt Initialisierungsskripte, die mit sysv-init kompatibel sind, und kann Abhängigkeitsinformationen aus sysv-rc oder OpenRC importieren.

Zu den Vorteilen von s6-rc gehört die kompakte Implementierung, die nichts Überflüssiges enthält, außer den Komponenten zur Lösung direkter Aufgaben, und die minimale Ressourcen verbraucht. Im Gegensatz zu anderen Service-Managern unterstützt s6-rc die proaktive (im Offline-Modus) Erstellung eines Abhängigkeitsgraphs für die vorhandene Dienstmenge, was es ermöglicht, ressourcenintensive Abhängigkeitsanalysen separat durchzuführen, anstatt während des Ladens oder des Zustandswechsels. Dabei ist das System nicht monolithisch und in eine Reihe separater sowie austauschbarer Module unterteilt, von denen jedes gemäß der Unix-Philosophie nur eine bestimmte Aufgabe löst.

In Kombination mit den s6-Dienstprogrammen, die die Prozessausführung überwachen (ähnlich wie daemontools und runit), ermöglicht das Toolkit die gleichzeitige Überwachung von lang laufenden Diensten, indem es sie beispielsweise bei unerwartetem Beenden neu startet, und sorgt für den Start einer Folge von Befehlen in reproduzierbarer Form, die sich bei verschiedenen Ausführungen wiederholt. Unterstützt werden unter anderem Funktionen wie das Aktivieren eines Dienstes beim Zugriff auf einen Socket (Ausführung eines Handlers beim Zugriff auf einen Netzwerkport), die Protokollierung von Prozessevents (Ersatz für syslogd) und die kontrollierte Bereitstellung zusätzlicher Berechtigungen (ähnlich wie sudo).

Außerdem steht die Veröffentlichung des Pakets s6-linux-init 1.0.7.0 zur Verfügung, das die Implementierung eines Init-Prozesses zur Erstellung von fertigen Init-Systemen für Betriebssysteme auf Basis des Linux-Kernels bietet, in denen die s6- und s6-rc-Dienstprogramme zur Verwaltung von Diensten und Initiierungsskripten verwendet werden. Dabei sind s6 und s6-rc nicht an s6-linux-init gebunden und können bei Bedarf mit beliebigen Init-Systemen verwendet werden.

Darüber hinaus bietet das Projekt Folgendes an:

  • s6-networking – eine Sammlung von Dienstprogrammen zur Erstellung von Netzwerkdiensten, ähnlich wie ucspi.
  • s6-frontend – eine Schicht zur Wiederherstellung der Funktionalität von daemontools und runit auf Basis von s6.
  • s6-portable-utils – eine Sammlung typischer Unix-Dienstprogramme wie cut, chmod, ls, sort und grep, optimiert für minimalen Ressourcenverbrauch und lizenztechnisch unter ISC bereitgestellt.
  • s6-linux-utils – eine Sammlung von Dienstprogrammen, die auf Linux zugeschnitten sind, darunter chroot, freeramdisk, logwatch, mount und swapon.
  • s6-dns — eine Sammlung von Client-Bibliotheken und Dienstprogrammen, die die typischen DNS-Dienstprogramme von BIND und djbdns ersetzen.

In der neuen Version von s6-rc wurde in der s6-rc-compile-Dienstprogrammfunktion das Lesen von Abhängigkeitsdaten und Dienstmengen aus Verzeichnissen anstelle von Dateien implementiert. Die Verwendung von Verzeichnissen vereinfacht das Hinzufügen von Diensten zur Datenbank mit Abhängigkeitsinformationen beim Installieren von Programmen über den Paketmanager, da Änderungen an Dateien vermieden werden können. Die Unterstützung des alten dateibasierten Formats bleibt erhalten, um die Kompatibilität zu gewährleisten. In der neuen Version von s6-linux-init wurde die Option „-S“ zum s6-linux-init-maker-Dienstprogramm hinzugefügt, um die Daten in Containern zu synchronisieren.

Quelle: opennet.ru

60GB SSD 8Gb DDR4