Rilascio del gestore servizi s6-rc 0.5.3.0 e del sistema di inizializzazione s6-linux-init 1.0.7

È stata preparata un'importante release del service manager s6-rc 0.5.3.0, progettata per gestire l'avvio di script e servizi di inizializzazione, tenendo conto delle dipendenze. Il toolkit s6-rc può essere utilizzato sia nei sistemi di inizializzazione che per organizzare il lancio di servizi arbitrari in connessione con eventi che riflettono cambiamenti nello stato del sistema. Fornisce il monitoraggio completo dell'albero delle dipendenze e l'avvio o l'arresto automatico dei servizi per raggiungere uno stato specificato. Il codice è scritto in C ed è distribuito sotto la licenza ISC.

Il gestore del servizio s6-rc, che può essere considerato un analogo di sysv-rc o OpenRC, include una serie di utilità per l'avvio e l'arresto di processi a lunga esecuzione (demoni) o script di inizializzazione terminati immediatamente. Durante il lavoro, vengono prese in considerazione le dipendenze tra i componenti, viene assicurato l'avvio parallelo di script e servizi che non si intersecano tra loro e si garantisce che la sequenza di esecuzione degli script venga ripetuta tra diversi lanci. Tutti i cambiamenti di stato vengono elaborati tenendo conto delle dipendenze, assicurandosi che le dipendenze non vengano violate (ad esempio, quando un servizio viene avviato, le dipendenze necessarie per il suo funzionamento verranno avviate automaticamente e, una volta arrestate, verranno arrestati anche i servizi dipendenti).

Invece dei runlevel, s6-rc offre un concetto più universale di bundle, che consente di raggruppare i servizi in base a caratteristiche arbitrarie e compiti da risolvere. Per migliorare l'efficienza del lavoro, viene utilizzato un database delle dipendenze compilato, creato dall'utilità s6-rc-compile in base al contenuto delle directory con file per l'avvio/arresto dei servizi. Le utilità s6-rc-db e s6-rc-update vengono offerte per l'analisi e la manipolazione del database. Il sistema supporta script init compatibili con sysv-init e può importare informazioni sulle dipendenze da sysv-rc o OpenRC.

Tra i vantaggi di s6-rc c'è un'implementazione compatta che non contiene nulla di superfluo tranne i componenti per la risoluzione di problemi diretti e consuma un minimo di risorse. A differenza di altri gestori di servizi, s6-rc supporta la costruzione proattiva (offline) di un grafico delle dipendenze per un insieme esistente di servizi, che consente di eseguire analisi delle dipendenze ad alta intensità di risorse separatamente e non durante il caricamento o le modifiche dello stato. Allo stesso tempo, il sistema non è monolitico ed è suddiviso in una serie di moduli separati e sostituibili, ciascuno dei quali, secondo la filosofia Unix, risolve solo un compito specifico.

In combinazione con le utility s6 che monitorano il funzionamento dei processi (analoghe a daemontools e runit), il toolkit consente di monitorare contemporaneamente il funzionamento dei servizi a lunga esecuzione, ad esempio riavviandoli in caso di terminazioni anomale, e garantire che una sequenza di comandi viene lanciato in una forma riproducibile, ripetuta in diverse startup. Le funzionalità supportate includono l'attivazione di un servizio quando si accede a un socket (avviare un gestore quando si accede a una porta di rete), la registrazione degli eventi del processo (in sostituzione di syslogd) e la concessione controllata di privilegi aggiuntivi (analoghi a sudo).

Contemporaneamente è disponibile il rilascio del pacchetto s6-linux-init 1.0.7.0, che offre un'implementazione del processo init per la creazione di sistemi init già pronti per sistemi operativi basati sul kernel Linux, in cui s6 e s6 Le utilità -rc vengono utilizzate per gestire servizi e script di inizializzazione. Allo stesso tempo, s6 e s6-rc non sono legati a s6-linux-init e, se lo si desidera, possono essere utilizzati con qualsiasi sistema di inizializzazione.

Inoltre il progetto prevede:

  • s6-networking è un insieme di utilità per la creazione di servizi di rete, simili a ucspi.
  • s6-frontend - un framework per ricreare la funzionalità di daemontools e runit su s6.
  • s6-portable-utils è un insieme di utilità Unix standard come cut, chmod, ls, sort e grep, ottimizzate per un consumo minimo di risorse e fornite con licenza ISC.
  • s6-linux-utils - Un insieme di utilità specifiche per Linux come chroot, freeramdisk, logwatch, mount e swapon.
  • s6-dns è un insieme di librerie e utilità client che sostituiscono le utilità DNS standard di BIND e djbdns.

Nella nuova versione di s6-rc, l'utility s6-rc-compile implementa la lettura dei dati sulle dipendenze e sugli insiemi di servizi dalle directory, invece che dai file. L'uso delle directory semplifica l'aggiunta di servizi al database con informazioni sulle dipendenze durante l'installazione di programmi tramite un gestore di pacchetti, poiché consente di fare a meno di apportare modifiche ai file. Il supporto per il vecchio formato basato su file è stato mantenuto per garantire la compatibilità. Nella nuova versione di s6-linux-init, l'opzione "-S" è stata aggiunta all'utilità s6-linux-init-maker per la sincronizzazione dei dati nei contenitori.

Fonte: opennet.ru

Aggiungi un commento