Die Version 0.6.0.0 des Service-Managers s6-rc ist verfĂŒgbar, die zur Verwaltung des Starts von Initialisierungs- und Servicedateien dient. Es wird die Verfolgung von AbhĂ€ngigkeitsbĂ€umen sowie das automatische Starten oder Beenden von Diensten zur Erreichung des gewĂŒnschten Zustands unterstĂŒtzt. Das s6-rc-Toolkit kann sowohl in Init-Systemen als auch zur Organisation des Starts beliebiger Dienste basierend auf Ereignissen, die den Zustand des Systems widerspiegeln, verwendet 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 s6-rc-Service-Manager beinhaltet eine Sammlung von Tools zum Starten und Stoppen von langlaufenden Prozessen (DĂ€monen) oder sofort beendbaren Initialisierungsskripten. WĂ€hrend der AusfĂŒhrung wird sichergestellt, dass nicht ĂŒberlappende Services parallel gestartet werden, und die Reihenfolge der AusfĂŒhrung der Skripte bei verschiedenen Starts bleibt garantiert gleich. Alle StatusĂ€nderungen werden unter BerĂŒcksichtigung der AbhĂ€ngigkeiten verarbeitet; so werden beispielsweise beim Start eines Dienstes automatisch die notwendigen AbhĂ€ngigkeiten fĂŒr dessen Betrieb aktiviert, und beim Stoppen werden auch die abhĂ€ngigen Dienste gestoppt.
Im Gegensatz zu anderen Service-Managern unterstĂŒtzt s6-rc die vorausschauende (im Offline-Modus) Erstellung eines AbhĂ€ngigkeitsgraphs fĂŒr einen vorhandenen Satz von Services, was es ermöglicht, ressourcenintensive AbhĂ€ngigkeitsanalysen separat durchzufĂŒhren, anstatt wĂ€hrend des Ladens oder bei ZustandsĂ€nderungen. Das System ist modular gestaltet und in eine Reihe von separaten, austauschbaren Modulen unterteilt, von denen jedes gemÀà der Unix-Philosophie nur eine bestimmte Aufgabe löst. Das Projekt s6-rc folgt dem Minimalismus-Prinzip (es enthĂ€lt nichts ĂberflĂŒssiges) und verbraucht minimale Ressourcen.
Anstelle von Runlevels bietet s6-rc das Konzept von Bundles an, das die Gruppierung von Diensten nach beliebigen Kriterien und zu lösenden Aufgaben ermöglicht. Um die Effizienz zu steigern, wird eine kompilierte AbhĂ€ngigkeitsdatenbank verwendet, die von der Utility s6-rc-compile basierend auf dem Inhalt der Verzeichnisse mit Start-/Stoppdateien fĂŒr Dienste erstellt wird. FĂŒr die Analyse und Manipulation der Datenbank stehen die Tools s6-rc-db und s6-rc-update zur VerfĂŒgung.
In der neuen Version wurden die Sammlungen der Dienstprogramme s6-rc-repo-* und s6-rc-set-* hinzugefĂŒgt, die fĂŒr die Verwaltung von Repositories mit Dienstdefinitionen verwendet werden; UnterstĂŒtzung fĂŒr Shared Libraries auf der macOS-Plattform wurde hinzugefĂŒgt; eine Option «âbootdb» fĂŒr die Konfiguration der Boot-Datenbank mit Informationen ĂŒber Dienste und deren AbhĂ€ngigkeiten wurde eingefĂŒhrt; in das Dienstprogramm s6-rc-compile wurde die Option «-v2» integriert.
Das Projekt umfasst auch ergĂ€nzende Pakete, die s6-rc unterstĂŒtzen:
- s6 sind Tools zur Ăberwachung und Verwaltung von Prozessen (Ă€hnlich wie daemontools und runit). Es werden Funktionen wie das Neustarten von Prozessen nach einem unerwarteten Abbruch, die Aktivierung eines Handlers (Dienstaktivierung) beim Zugriff auf einen Netzwerkport, Ereignisprotokollierung (Ersatz fĂŒr syslogd) und kontrollierte GewĂ€hrung zusĂ€tzlicher Berechtigungen (Ă€hnlich wie sudo) unterstĂŒtzt.
- s6-linux-init â die Implementierung des Init-Prozesses fĂŒr Betriebssysteme auf Basis des Linux-Kernels, der zur Erstellung von Initialisierungssystemen verwendet wird, in denen Pakete wie s6 und s6-rc zur Verwaltung von Diensten und Skripten eingesetzt werden.
- s6-networking â eine Sammlung von Tools zur Erstellung von Netzwerkdiensten, Ă€hnlich wie ucspi.
- s6-frontend â ein Wrapper zur Wiederherstellung der FunktionalitĂ€t von daemontools und runit ĂŒber s6.
- s6-portable-utils â eine Sammlung von typischen Unix-Tools wie cut, chmod, ls, sort und grep, optimiert fĂŒr minimalen Ressourcenverbrauch und unter der ISC-Lizenz bereitgestellt.
- s6-linux-utils â eine Sammlung von Linux-spezifischen Tools wie chroot, freeramdisk, logwatch, mount und swapon.
- mdevd â ein Ereignismanager (analog zu udevd), der fĂŒr die Verarbeitung des Hot-Plugging von GerĂ€ten vorgesehen ist. mdevd ist konfigurationskompatibel mit mdev aus der Busybox.
- bcnm â ein Netzwerk-Konfigurator 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 â ein Satz von Client-Bibliotheken und -Tools, die die typischen DNS-Tools von BIND und djbdns ersetzen.
- dnsfunnel â leitet lokale DNS-Anfragen an externe weiter. der Server (DNS-Weiterleiter).
- shibari â ein einfacher DNS-Server.
- tipidee â ein HTTP-Server mit UnterstĂŒtzung fĂŒr HTTP/1.1.
Quelle: opennet.ru
