Disponibile il sistema di inizializzazione Finit 4.0

Dopo circa tre anni di sviluppo è stato pubblicato il rilascio del sistema di inizializzazione Finit 4.0 (Fast init), sviluppato come semplice alternativa a SysV init e systemd. Il progetto si basa sugli sviluppi creati dal reverse engineering del sistema di inizializzazione fastinit utilizzato nel firmware Linux dei netbook EeePC e noto per il suo processo di avvio molto veloce. Il sistema è destinato principalmente all'avvio di sistemi compatti ed embedded, ma può essere utilizzato anche per ambienti desktop e server convenzionali. Sono stati preparati script di implementazione di esempio per Void Linux, Alpine Linux e Debian GNU/Linux. Il codice del progetto è scritto in C ed è distribuito sotto licenza MIT.

Finit supporta runlevel in stile init SysV, monitorando lo stato dei processi in background (riavviando automaticamente il servizio in caso di errore), eseguendo gestori una tantum, avviando servizi tenendo conto delle dipendenze e delle condizioni arbitrarie, allegando gestori aggiuntivi da eseguire prima o dopo esecuzione del servizio. Ad esempio, è possibile configurare un servizio in modo che venga avviato solo dopo che è disponibile l'accesso alla rete o dopo l'avvio di qualche altro servizio, come syslogd. Cgroups v2 viene utilizzato per impostare restrizioni.

Per espandere le funzionalità e adattarsi alle proprie esigenze, è possibile utilizzare plugin, per i quali viene fornito un sistema di hook che consente di associare un gestore a varie fasi di caricamento ed esecuzione dei servizi, nonché di fornire associazioni a eventi esterni. Ad esempio, sono stati preparati plugin per supportare D-Bus, ALSA, netlink, resolvconf, hot plugging dei dispositivi, controllo della disponibilità e caricamento dei moduli del kernel, elaborazione dei file PID e configurazione dell'ambiente per il server X.

È supportato l'uso di script standard per l'avvio dei servizi creati per SysV init (/etc/rc.d e /etc/init.d non vengono utilizzati, ma il supporto per /etc/inittab può essere implementato tramite il plugin), così come Script rc.local, file con variabili di ambiente e impostazioni di rete /etc/network/interfaces, come in Debian e BusyBox. Le impostazioni possono essere definite in un file di configurazione /etc/finit.conf o distribuite su diversi file nella directory /etc/finit.d.

La gestione viene effettuata tramite gli strumenti standard initctl e run-parts, che consentono di attivare e disattivare i servizi in relazione ai livelli di esecuzione, nonché di avviare selettivamente alcuni servizi. Finit include anche un'implementazione getty integrata (gestione del terminale e dell'accesso degli utenti), un watchdog per il monitoraggio dello stato e una modalità di ripristino da crash con sulogin integrato per l'esecuzione di una shell di comandi isolata.

Disponibile il sistema di inizializzazione Finit 4.0

Tra le modifiche aggiunte nella versione Finit 4.0 (la versione 3.2 è stata saltata a causa di modifiche che hanno interrotto la compatibilità con le versioni precedenti):

  • L'utilità di riavvio separata è stata sostituita con un collegamento simbolico a initctl, simile alle utilità di arresto, spegnimento, spegnimento e sospensione.
  • L'indicazione dello stato di avanzamento delle operazioni è stata implementata.
  • Il funzionamento dei comandi “inictl cond set|clear COND” è stato modificato per associare le azioni a vari eventi. Per identificare i servizi, viene utilizzata la sintassi invece del collegamento ai percorsi .
  • L'implementazione integrata del server inetd è stata rimossa, dove xinetd può essere installato se necessario.
  • Aggiunto supporto per cgroups v2 per l'esecuzione di servizi in cgroup separati.
  • Aggiunta la modalità di ripristino da crash con il proprio suslogin.
  • Aggiunto il supporto per gli script di avvio/arresto da SysV init.
  • Aggiunti gestori pre:script e post:script che consentono di specificare le azioni eseguite prima o quando viene avviato il servizio.
  • Aggiunto supporto per env:file con variabili di ambiente.
  • Aggiunta la possibilità di tracciare file PID arbitrari.
  • Aggiunta la possibilità di avviare attività e servizi utilizzando percorsi relativi.
  • Aggiunta l'opzione "-b" a initctl per eseguire azioni in modalità non interattiva (modalità batch).
  • Il watchdog integrato è stato sostituito con una versione separata di watchdogd.
  • Aggiunto un plugin per caricare automaticamente i moduli del kernel per i dispositivi collegati durante il funzionamento.
  • Aggiunto plugin per gestire /etc/modules-load.d/.
  • Aggiunto il supporto per il riavvio automatico dei servizi dopo aver modificato le impostazioni, consentendo di fare a meno dell'esecuzione manuale del comando "initctl reload". Disabilitato per impostazione predefinita e richiede la ricostruzione con "./configure --enable-auto-reload".
  • Aggiunta la possibilità di registrare le operazioni che influiscono sulla sicurezza, come la modifica del runlevel, l'avvio e l'arresto dei servizi e gli errori dei servizi.
  • Supporto migliorato per /etc/network/interfaces.

    Fonte: opennet.ru

Aggiungi un commento