Finit 4.0 initialisatiesysteem beschikbaar

Na ongeveer drie jaar ontwikkeling werd de release van het initialisatiesysteem Finit 4.0 (Fast init) gepubliceerd, ontwikkeld als een eenvoudig alternatief voor SysV init en systemd. Het project is gebaseerd op ontwikkelingen die zijn ontstaan ​​door reverse engineering van het fastinit-initialisatiesysteem dat wordt gebruikt in de Linux-firmware van EeePC-netbooks en dat opvalt vanwege het zeer snelle opstartproces. Het systeem is primair gericht op het opstarten van compacte en embedded systemen, maar kan ook gebruikt worden voor conventionele desktop- en serveromgevingen. Er zijn voorbeeldimplementatiescripts voorbereid voor Void Linux, Alpine Linux en Debian GNU/Linux. De projectcode is geschreven in C en wordt gedistribueerd onder de MIT-licentie.

Finit ondersteunt runlevels in de SysV init-stijl, bewaakt de gezondheid van achtergrondprocessen (automatisch herstarten van de service in geval van een storing), voert eenmalige handlers uit, start services waarbij rekening wordt gehouden met afhankelijkheden en willekeurige omstandigheden, en voegt extra handlers toe om ervoor of erna uit te voeren uitvoering van de dienst. U kunt bijvoorbeeld een service zo configureren dat deze pas wordt gestart nadat netwerktoegang beschikbaar is of nadat een andere service, zoals syslogd, is gestart. Cgroups v2 wordt gebruikt om beperkingen in te stellen.

Om de functionaliteit uit te breiden en aan uw behoeften aan te passen, kunnen plug-ins worden gebruikt, waarvoor een systeem van hooks is voorzien waarmee u een handler kunt koppelen aan verschillende fasen van het laden en uitvoeren van services, en om binding aan externe gebeurtenissen te bieden. Er zijn bijvoorbeeld plug-ins voorbereid ter ondersteuning van D-Bus, ALSA, netlink, resolvconf, hot-plugging van apparaten, het controleren van de beschikbaarheid en het laden van kernelmodules, het verwerken van PID-bestanden en het opzetten van de omgeving voor de X-server.

Het gebruik van standaardscripts voor het starten van services die voor SysV init zijn gemaakt, wordt ondersteund (/etc/rc.d en /etc/init.d worden niet gebruikt, maar ondersteuning voor /etc/inittab kan via de plug-in worden geïmplementeerd), evenals rc.local-scripts, bestanden met omgevings- en netwerkinstellingenvariabelen /etc/network/interfaces, zoals in Debian en BusyBox. Instellingen kunnen worden gedefinieerd in één configuratiebestand /etc/finit.conf, of worden verdeeld over verschillende bestanden in de map /etc/finit.d.

Het beheer wordt uitgevoerd via de standaard initctl- en run-parts-tools, waarmee u services kunt activeren en deactiveren in relatie tot runniveaus, en ook selectief sommige services kunt starten. Finit bevat ook een ingebouwde Getty-implementatie (terminal- en gebruikersaanmeldingsbeheer), een waakhond voor gezondheidsmonitoring en een crashherstelmodus met ingebouwde sulogin voor het uitvoeren van een geïsoleerde opdrachtshell.

Finit 4.0 initialisatiesysteem beschikbaar

Onder de wijzigingen die zijn toegevoegd in de Finit 4.0-release (versie 3.2 werd overgeslagen vanwege wijzigingen die de achterwaartse compatibiliteit verbraken):

  • Het afzonderlijke hulpprogramma voor opnieuw opstarten is vervangen door een symbolische link naar initctl, vergelijkbaar met de hulpprogramma's voor stoppen, afsluiten, uitschakelen en opschorten.
  • Indicatie van de voortgang van de werkzaamheden is geïmplementeerd.
  • De werking van de “inictl cond set|clear COND”-opdrachten is gewijzigd om acties aan verschillende gebeurtenissen te binden. Om services te identificeren wordt de syntaxis gebruikt in plaats van te binden aan paden .
  • De ingebouwde implementatie van de inetd-server is verwijderd, waar xinetd indien nodig kan worden geïnstalleerd.
  • Ondersteuning toegevoegd voor cgroups v2 voor het uitvoeren van services in afzonderlijke cgroups.
  • Crashherstelmodus toegevoegd met een eigen suslogin.
  • Ondersteuning toegevoegd voor start/stop-scripts van SysV init.
  • Pre:script- en post:script-handlers toegevoegd waarmee u uw acties kunt specificeren die worden uitgevoerd vóór of wanneer de service start.
  • Ondersteuning toegevoegd voor env:file met omgevingsvariabelen.
  • De mogelijkheid toegevoegd om willekeurige PID-bestanden te volgen.
  • De mogelijkheid toegevoegd om taken en services te starten met behulp van relatieve paden.
  • Optie "-b" toegevoegd aan initctl om acties uit te voeren in niet-interactieve modus (batchmodus).
  • De ingebouwde watchdog is vervangen door een aparte versie van watchdogd.
  • Er is een plug-in toegevoegd om kernelmodules automatisch te laden voor apparaten die tijdens bedrijf zijn aangesloten.
  • Plugin toegevoegd om /etc/modules-load.d/ af te handelen.
  • Ondersteuning toegevoegd voor het automatisch herstarten van services na het wijzigen van instellingen, zodat u het commando “initctl reload” niet handmatig hoeft uit te voeren. Standaard uitgeschakeld en moet opnieuw worden opgebouwd met "./configure --enable-auto-reload".
  • De mogelijkheid toegevoegd om bewerkingen te loggen die van invloed zijn op de beveiliging, zoals het wijzigen van runlevel, het starten en stoppen van services en servicefouten.
  • Verbeterde ondersteuning voor /etc/network/interfaces.

    Bron: opennet.ru

Voeg een reactie