Es wurde eine neue Version des Service-Managers s6-rc 0.7.0.0 veröffentlicht, die fĂŒr die Verwaltung der AusfĂŒhrung von Initialisierungsskripten und Diensten vorgesehen ist. Es wird das Verfolgen des AbhĂ€ngigkeitsbaums und das automatische Starten oder Stoppen von Diensten zur Erreichung eines bestimmten Zustands unterstĂŒtzt. Das s6-rc-Toolkit kann sowohl in Initialisierungssystemen als auch zur Organisation des Starts beliebiger Dienste in Bezug auf Ereignisse, die das Systemverhalten widerspiegeln, eingesetzt werden. Das System unterstĂŒtzt Initialisierungsskripte, die mit sysv-init kompatibel sind, und kann AbhĂ€ngigkeitsinformationen aus sysv-rc oder OpenRC importieren. Der Code ist in C geschrieben und wird unter der ISC-Lizenz veröffentlicht.
Der Service-Manager s6-rc umfasst eine Sammlung von Utilities zum Starten und Stoppen von langlaufenden Prozessen (DĂ€monen) oder sofort beendbaren Initialisierungsskripten. WĂ€hrend des Betriebs wird der parallele Start von nicht sich ĂŒberschneidenden Diensten sichergestellt, und es wird garantiert, dass die AusfĂŒhrungsreihenfolge der Skripten bei verschiedenen Starts wiederholt wird. Alle ZustandsĂ€nderungen werden unter BerĂŒcksichtigung der AbhĂ€ngigkeiten verarbeitet, zum Beispiel werden beim Start eines Dienstes automatisch die notwendigen AbhĂ€ngigkeiten gestartet, und beim Stoppen werden die abhĂ€ngigen Dienste angehalten.
Im Gegensatz zu anderen Service-Managern unterstĂŒtzt s6-rc eine proaktive (offline) Erstellung des AbhĂ€ngigkeitsgraphen fĂŒr die vorhandene Menge an Diensten, was es ermöglicht, eine ressourcenintensive Analyse der AbhĂ€ngigkeiten separat durchzufĂŒhren und nicht wĂ€hrend des Bootens oder beim Ăndern des Zustands. Dabei ist das System nicht monolithisch und ist in eine Reihe separater und austauschbarer Module unterteilt, von denen jedes gemÀà der Unix-Philosophie nur eine bestimmte Aufgabe löst. Das Projekt s6-rc verfolgt die Philosophie des Minimalismus (enthĂ€lt nichts ĂberflĂŒssiges) und verbraucht minimalste Ressourcen.
Anstelle von Runlevels in s6-rc wird das Konzept von Bundles vorgeschlagen, das es ermöglicht, Dienste nach beliebigen Merkmalen und Aufgaben zu gruppieren. Zur Steigerung der Effizienz wird eine kompilierte AbhĂ€ngigkeitsdatenbank eingesetzt, die mit dem Tool s6-rc-compile basierend auf dem Inhalt von Verzeichnissen mit Start-/Stoppdateien fĂŒr Dienste erstellt wird. FĂŒr das Parsen und die Manipulation der Datenbank stehen die Tools s6-rc-db und s6-rc-update zur VerfĂŒgung. Das s6-Toolkit wird in den Distributionen Obarun, Adelie und Artix verwendet und kann optional in Gentoo, Void und Alpine eingesetzt werden.
Das Projekt entwickelt auch begleitende Pakete, die s6-rc ergÀnzen:
- s6 â Dienstprogramme zur Ăberwachung und Verwaltung von Prozessen (Ă€hnlich wie daemontools und runit). UnterstĂŒtzt werden Funktionen wie das Neustarten von Prozessen nach einem Absturz, das Starten eines Handlers (Aktivierung eines Dienstes) beim Zugriff auf einen Netzwerkport, die Protokollierung von Ereignissen (Ersatz fĂŒr syslogd) und die kontrollierte Bereitstellung zusĂ€tzlicher Berechtigungen (Ă€hnlich wie sudo).
- s6-linux-init â Implementierung des Init-Prozesses fĂŒr Betriebssysteme auf Basis des Linux-Kernels, eingesetzt zur Erstellung von Initialisierungssystemen, in denen zur Verwaltung von Diensten und Skripten die Pakete s6 und s6-rc verwendet werden.
- 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.
- mdevd â ein Ereignismanager (Ă€hnlich wie udevd), der fĂŒr die Behandlung von Hotplugging von GerĂ€ten gedacht ist. Die Konfiguration von mdevd ist mit mdev aus Busybox kompatibel.
- bcnm â ein Netzwerk-Configurator mit Funktionen zur Konfiguration von Wi-Fi auf der Client-Seite.
- execline â eine Skriptsprache.
- skalibs â eine Bibliothek zur Erstellung sicherer Systemanwendungen in der Programmiersprache C.
- s6-dns â eine Sammlung von Client-Bibliotheken und Dienstprogrammen, die die typischen DNS-Dienstprogramme von BIND und djbdns ersetzen.
- dnsfunnel â leitet lokale DNS-Anfragen an externe weiter Server (DNS-Weiterleitung).
- shibari â ein einfacher DNS-Server.
- tipidee â ein HTTP-Server mit UnterstĂŒtzung fĂŒr HTTP/1.1.
In der neuen Version von s6-rc und den zugehörigen Tools:
- Der Befehl âs6-rc reloadâ wurde implementiert, um langlaufende Dienste neu zu starten.
- Eine Steuerdatei reload-signal wurde hinzugefĂŒgt, die das Signal definiert, das an den Prozess zum Neustart gesendet wird (standardmĂ€Ăig SIGHUP).
- Das Tool s6-rc-bundle wurde entfernt â eine Ănderung von Bundle-Sets ohne Neukompilierung wird nicht mehr unterstĂŒtzt.
- Ein neues Format fĂŒr die interne Datenbank wurde vorgeschlagen (fĂŒr das Update ist eine Neukompilierung und die AusfĂŒhrung des Tools s6-rc-format-upgrade erforderlich).
- Die korrekte Handhabung der Situation bei wiederholtem Start des Tools s6-rc-init zur Initialisierung von Diensten wurde sichergestellt, und die Verarbeitung von SystemausfÀllen wurde verbessert.
- In das Tool s6-rc-set-change wurden Optionen hinzugefĂŒgt: -I/-i zum Ausgeben einer Warnung oder zum Beenden mit einem Fehler bei entdeckten Konflikten in AbhĂ€ngigkeiten; -P/-p zum Deaktivieren/Aktivieren der automatischen Konfliktlösung beim Ăndern des Status von Diensten.
- Die veraltete Option â-fâ wurde entfernt.
- Im Tool s6 wurde der Befehl s6-svscanboot hinzugefĂŒgt, um die Logs des Supervisors s6-svscan an s6-log umzuleiten, wenn dieser nicht unter PID 1 lĂ€uft.
- Die Option «s6-svc -l» wurde implementiert, um ein Signal zum Neustart zu senden.
- Die BenutzeroberflĂ€che s6-frontend unterstĂŒtzt jetzt Optionen und Befehle: «s6 âuser» (fĂŒr die Arbeit mit Benutzerdiensten), «s6 live reset», «s6 apply», «s6 enable|disable|start|stop|kill|apply», «s6 live stop âclean».
- Der HTTP-Server tipidee unterstĂŒtzt nun FastCGI und bietet die Option cgi_pass_authorization.
Quelle: opennet.ru
