Das Init-System Finit 4.0 ist verfügbar.

Nach etwa drei Jahren Entwicklung wurde das Release des Initialisierungssystems Finit 4.0 (Fast init) veröffentlicht, das als einfache Alternative zu SysV init und systemd entwickelt wurde. Das Projekt basiert auf den Erkenntnissen, die durch Reverse Engineering des Initialisierungssystems fastinit gewonnen wurden, das in der Linux-Firmware von Netbooks EeePC verwendet wird und für seinen sehr schnellen Bootprozess bekannt ist. Das System zielt in erster Linie darauf ab, das Booten von kompakten und eingebetteten Systemen zu gewährleisten, kann jedoch auch in herkömmlichen Desktop- und Serverumgebungen eingesetzt werden. Szenario-Beispiele für die Implementierung wurden für Void Linux, Alpine Linux und Debian GNU/Linux vorbereitet. Der Code des Projekts ist in C geschrieben und wird unter der MIT-Lizenz verbreitet.

Finit unterstützt Ausführungslevel im Stil von SysV init, die Überwachung der Verfügbarkeit von Hintergrundprozessen (automatischer Neustart des Dienstes im Falle eines Ausfalls), die Ausführung von einmaligen Handlern, das Starten von Diensten unter Berücksichtigung von Abhängigkeiten und willkürlichen Bedingungen sowie das Anheften zusätzlicher Handler zum Starten vor oder nach der Ausführung eines Dienstes. Beispielsweise kann der Start eines Dienstes so konfiguriert werden, dass er erst nach dem Zugang zum Netzwerk oder nach dem Start eines anderen Dienstes, wie z. B. syslogd, erfolgt. Für die Festlegung von Einschränkungen werden Cgroups v2 verwendet.

Zur Erweiterung der Funktionalität und Anpassung an die eigenen Bedürfnisse können Plugins verwendet werden, für die ein Hook-System bereitgestellt wurde, das es ermöglicht, einen Handler an verschiedenen Phasen des Bootens und der Ausführung von Diensten anzukoppeln sowie eine Bindung an externe Ereignisse zu gewährleisten. Beispielsweise wurden Plugins zur Unterstützung von D-Bus, ALSA, netlink, resolvconf, zum Hotplugging von Geräten, zur Überprüfung der Erreichbarkeit und zum Laden von Kernelmodulen, zur Verarbeitung von PID-Dateien und zur Konfiguration der Umgebung für den X-Server vorbereitet.

Es wird die Nutzung standardmäßiger Skripte zum Starten von Diensten unterstützt, die für SysV init erstellt wurden (/etc/rc.d und /etc/init.d werden nicht verwendet, aber die Unterstützung von /etc/inittab kann durch ein Plugin realisiert werden), sowie rc.local-Skripte, Umgebungsvariablen und Netzwerkeinstellungen in /etc/network/interfaces, wie in Debian und BusyBox. Die Einstellungen können entweder in einer einzigen Konfigurationsdatei /etc/finit.conf definiert oder auf mehrere Dateien im Verzeichnis /etc/finit.d verteilt werden.

Die Verwaltung erfolgt über das Standardwerkzeug initctl und run-parts, das das Aktivieren und Deaktivieren von Diensten in Verbindung mit den Startlevels ermöglicht und auch das selektive Starten von bestimmten Diensten erlaubt. Finit umfasst auch eine integrierte Implementierung von getty (Terminal- und Benutzerzugangsverwaltung), einen Watchdog zur Überwachung der Funktionsfähigkeit und einen Wiederherstellungsmodus nach einem Absturz mit einem integrierten sulogin zum Starten einer isolierten Befehlszeile.

Das Init-System Finit 4.0 ist verfügbar.

Zu den Änderungen, die in der Version Finit 4.0 hinzugefügt wurden (Version 3.2 wurde aufgrund von Änderungen, die die Abwärtskompatibilität beeinträchtigen, übersprungen):

  • Das separate Dienstprogramm reboot wurde durch einen symbolischen Link auf initctl ersetzt, ähnlich wie bei den Dienstprogrammen halt, shutdown, poweroff und suspend.
  • Eine Fortschrittsanzeige für die Ausführung von Vorgängen wurde implementiert.
  • Die Funktionsweise der Befehle "inictl cond set|clear COND" wurde geändert, um Aktionen mit verschiedenen Ereignissen zu verknüpfen. Zur Identifizierung der Dienste wird die Syntax anstelle der Verknüpfung mit Pfaden verwendet.
  • Die integrierte Implementierung wurde entfernt. Server inetd, für den bei Bedarf xinetd installiert werden kann.
  • Die Unterstützung für cgroups v2 wurde hinzugefügt, um Dienste in separaten cgroups zu starten.
  • Ein Wiederherstellungsmodus nach einem Absturz mit eigenem suslogin wurde hinzugefügt.
  • Die Unterstützung für Start-/Stopp-Skripte von SysV init wurde hinzugefügt.
  • Pre:script und Post:script-Handler wurden hinzugefügt, mit denen benutzerdefinierte Aktionen vor oder beim Starten eines Dienstes angegeben werden können.
  • Die Unterstützung für env:file mit Umgebungsvariablen wurde hinzugefügt.
  • Die Möglichkeit zur Überwachung beliebiger PID-Dateien wurde hinzugefügt.
  • Die Ausführung von Aufgaben und Diensten mit relativen Pfaden wurde ermöglicht.
  • In initctl wurde die Option "-b" hinzugefügt, um Aktionen im nicht interaktiven Modus (Batch-Modus) auszuführen.
  • Der integrierte Watchdog wurde durch eine separate Variante watchdogd ersetzt.
  • Ein Plugin zur automatischen Ladung von Kernelmodulen für Geräte, die während des Betriebs angeschlossen werden, wurde hinzugefügt.
  • Ein Plugin zur Verarbeitung von /etc/modules-load.d/ wurde hinzugefügt.
  • Die Unterstützung für die automatische Neuladen von Diensten nach Änderungen an den Einstellungen wurde hinzugefügt, wodurch das manuelle Ausführen des Befehls "initctl reload" vermieden werden kann. Standardmäßig ist diese Funktion deaktiviert und erfordert einen Neuaufbau mit "./configure --enable-auto-reload".
  • Die Möglichkeit zur Protokollierung von Vorgängen, die die Sicherheit betreffen, wie etwa die Änderung des Runlevels, das Starten und Stoppen von Diensten sowie Abstürze von Diensten, wurde hinzugefügt.
  • Die Unterstützung für /etc/network/interfaces wurde verbessert.

    Quelle: opennet.ru
60GB SSD 8Gb DDR4