È stato preparato un significativo rilascio del gestore di servizi s6-rc 0.5.3.0, progettato per gestire l'avvio di script di inizializzazione e servizi tenendo conto delle dipendenze. L'insieme di strumenti s6-rc può essere utilizzato sia nei sistemi di inizializzazione sia per organizzare l'avvio di servizi arbitrari in relazione agli eventi che riflettono i cambiamenti di stato del sistema. Viene fornito un tracciamento completo dell'albero delle dipendenze e un avvio o un arresto automatico dei servizi per raggiungere il stato desiderato. Il codice è scritto in C ed è distribuito con licenza ISC.
Il gestore di servizi s6-rc, che può essere considerato l'equivalente di sysv-rc o OpenRC, include un insieme di utility per avviare e fermare processi di lunga durata (daemon) o script di inizializzazione che terminano instantaneamente. Durante il funzionamento, vengono considerate le dipendenze tra i componenti, garantendo un avvio parallelo di script e servizi che non si sovrappongono, e si assicura una sequenza di esecuzione degli script ripetibile in diversi avvii. Tutti i cambiamenti di stato sono gestiti tenendo conto delle dipendenze, assicurando che queste non vengano violate (ad esempio, l'avvio di un servizio attiverà automaticamente le dipendenze necessarie, mentre l'arresto fermerà i servizi dipendenti).
Invece dei livelli di esecuzione (runlevel), in s6-rc viene proposta una concezione più universale di set (bundles), che consente di raggruppare i servizi in base a criteri arbitrari e compiti da svolgere. Per aumentare l'efficienza è utilizzata una base di dati di dipendenze compilata, creata dall'utility s6-rc-compile sulla base del contenuto delle directory con i file per l'avvio / arresto dei servizi. Per l'analisi e le manipolazioni con il database sono proposte le utility s6-rc-db e s6-rc-update. Il sistema supporta script di inizializzazione compatibili con sysv-init e può importare informazioni sulle dipendenze da sysv-rc o OpenRC.
Tra i vantaggi di s6-rc si può citare l'implementazione compatta, priva di elementi superflui, tranne i componenti per affrontare compiti diretti e che consuma il minimo di risorse. A differenza di altri gestori di servizi, s6-rc supporta la costruzione anticipata (in modalità offline) del grafo delle dipendenze per un insieme di servizi esistenti, il che consente di eseguire un'analisi delle dipendenze ad alta intensità di risorse separatamente, piuttosto che durante il caricamento o la modifica dello stato. Inoltre, il sistema non è monolitico ed è suddiviso in una serie di moduli distinti e sostituibili, ognuno dei quali, secondo la filosofia Unix, affronta solo compiti specifici.
In combinazione con le utility s6 che monitorano l'esecuzione dei processi (simili a daemontools e runit), l'insieme di strumenti consente di controllare contemporaneamente l'esecuzione di servizi a lungo termine, ad esempio riavviandoli in caso di terminazioni anomale, e di garantire l'esecuzione sequenziale di comandi in modo riproducibile, che si ripete in diversi avvii. Sono supportate anche funzionalità come l'attivazione del servizio al momento dell'accesso al socket (avvio del gestore al momento della richiesta su una porta di rete), la registrazione degli eventi del processo (sostituzione di syslogd) e la concessione controllata di privilegi aggiuntivi (simile a sudo).
È disponibile anche il rilascio del pacchetto s6-linux-init 1.0.7.0, che offre un'implementazione del processo init per la creazione di sistemi di inizializzazione pronti per sistemi operativi basati su kernel Linux, in cui le utility s6 e s6-rc gestiscono servizi e script di inizializzazione. Inoltre, s6 e s6-rc non sono legati a s6-linux-init e possono essere utilizzati, se desiderato, con qualsiasi sistema di inizializzazione.
Inoltre, il progetto offre:
- s6-networking — un insieme di strumenti per creare servizi di rete, simile a ucspi.
- s6-frontend — un'interface per ricreare la funzionalità di daemontools e runit sopra s6.
- s6-portable-utils — un insieme di utilità Unix standard, come cut, chmod, ls, sort e grep, ottimizzati per un consumo minimo di risorse e forniti sotto licenza ISC.
- s6-linux-utils — un insieme di utilità legate a Linux, come chroot, freeramdisk, logwatch, mount e swapon.
- s6-dns — una raccolta di librerie client e strumenti che sostituiscono le tipiche utility DNS di BIND e djbdns.
Nella nuova versione di s6-rc, l'utility s6-rc-compile ora legge i dati sulle dipendenze e sugli insiemi di servizi da cartelle, anziché da file. L'utilizzo delle cartelle semplifica l'aggiunta di servizi al database con informazioni sulle dipendenze durante l'installazione dei programmi tramite il gestore pacchetti, poiché evita la necessità di modificare file. Il supporto per il vecchio formato basato su file è mantenuto per garantire la compatibilità. Nella nuova versione di s6-linux-init è stata aggiunta all'utility s6-linux-init-maker l'opzione "-S" per la sincronizzazione dei dati nei contenitori.
Fonte: opennet.ru
