OpenRC

sistema di inizializzazione basato su dipendenze e sviluppato per sistemi operativi Unix-like
Versione del 26 set 2024 alle 10:36 di Nicola Fioretti (discussione | contributi) (Creata dalla traduzione della pagina "OpenRC")
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

OpenRC è un sistema di inizializzazione (init system) basato su dipendenze e sviluppato per sistemi operativi Unix-like. Fu creato da Roy Marples, uno sviluppatore NetBSD attivo anche nel progetto Gentoo. [1] [2]

ApriRC
Autore(i) originale(i) Roy Marples
Sviluppatore(i) Sviluppatori OpenRC
Versione iniziale 5 Aprile 2007 ; 17 anni fa ( 05-04-2007 )

Nato proprio come sistema di init nativo per Gentoo è stato poi adottato da molte altre distribuzioni a seguito della loro decisione di abbandonarre systemd . [3] [4] [5]

OpenRC avvia i servizi di sistema necessari nell'ordine corretto all'avvio, li gestisce mentre il sistema è in uso, e li termina allo spegnimento. Può supervisionare i processi che avvia, ed ha la possibilità di avviare processi in parallelo - quando possibile - per ridurre i tempi d'avvio.

OpenRC all'avvio di Artix Linux
Processo di avvio

Diffusione

OpenRC è il sistema di inizializzazione adottato da questo distribuzioni GNU/Linux:

OpenRC è disponibile opzionalmente per:

Progetto

OpenRC è costituito da diversi componenti modulari, i principali dei quali sono un init (facoltativo), il sistema di gestione delle dipendenze di base e un supervisore del demone (facoltativo). È scritto in C e in una shell compatibile con POSIX, il che lo rende utilizzabile sui sistemi BSD e Linux.

La parte principale di OpenRC gestisce la gestione delle dipendenze e l'analisi degli script di inizializzazione. OpenRC funziona eseguendo la scansione dei livelli di esecuzione, creando un grafico delle dipendenze e quindi avviando gli script di servizio necessari. Termina una volta avviati gli script. Per impostazione predefinita, OpenRC utilizza una versione modificata di start-stop-daemon per la gestione dei daemon. [8]

Gli script init presentano somiglianze con gli script utilizzati in sysvinit, ma offrono diverse funzionalità per semplificarne la creazione. Si presume che gli script abbiano start(), stop() e status() ; e il sistema utilizza variabili già dichiarate per creare le funzioni predefinite. [9] La funzione depend viene utilizzata per dichiarare dipendenze da altri servizi che verrebbero eseguite con le intestazioni LSB in sysvinit. La configurazione e il meccanismo sono separati tramite file di configurazione nella directory conf.d e file init nella directory init.d.

Openrc-init è apparso per la prima volta nella versione 0.25 come sostituto opzionale di <code about="#mwt81" class="mw-highlight mw-highlight-lang-text mw-content-ltr" data-cx="[{&quot;adapted&quot;:true,&quot;partial&quot;:true,&quot;targetExists&quot;:true,&quot;mandatoryTargetParams&quot;:[&quot;codice&quot;],&quot;optionalTargetParams&quot;:[&quot;linguaggio&quot;]}]" data-mw="{&quot;name&quot;:&quot;syntaxhighlight&quot;,&quot;attrs&quot;:{&quot;lang&quot;:&quot;text&quot;,&quot;class&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;style&quot;:&quot;&quot;,&quot;inline&quot;:&quot;1&quot;},&quot;body&quot;:{&quot;extsrc&quot;:&quot;/sbin/init&quot;},&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;Codice&quot;,&quot;href&quot;:&quot;./Template:Codice&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;/sbin/init&quot;}},&quot;i&quot;:0}}]}" data-ve-no-generated-contents="true" dir="ltr" id="mwYA" style="" typeof="mw:Extension/syntaxhighlight mw:Transclusion">/sbin/init</code> . Questo può sostituire il sistema init predefinito di Gentoo Linux, sysvinit. [10]

Supervise-daemon è apparso per la prima volta nella versione 0.21, offrendo funzionalità di supervisione a OpenRC. Può essere abilitato nello script init per supervise-daemon per avviare e monitorare un demone. Sono supportati diversi altri supervisori di daemon, tra cui runit [11] e s6 . [12]

Caratteristiche

  • Portabilità tra Linux, FreeBSD e NetBSD
    • Supporto per cgroups.
    • Supervizione dei processi.
    • Avvio basato su dipendenze, con avvio dei servizi in parallelo.
    • Risoluzione e riordine automatico delle dipendenze.
    • Initscripts inizializzati dall'hardware.
    • Impostazione dei valori ulimit e nice per servizio attraverso la variabile rc_ulimit.
    • Permette script d'init complessi che avviano più componenti (Samba [smbd and nmbd], NFS [nfsd, portmap, etc.])
    • Architettura modulare, adatta all'infrastruttura preesistente.
    • OpenRC ha il suo sistema d'init chiamato openrc-init opzionale
    • OpenRC ha il suo supervisore dei processi opzionale
    • a

Note

  1. ^ GitHub, https://github.com/OpenRC/openrc/blob/master/HISTORY.md. URL consultato il 6 April 2020.
  2. ^ netbsd.org, https://www.netbsd.org/people/developers.html. URL consultato il 6 April 2020.
  3. ^ distrowatch.com, https://distrowatch.com/weekly.php?issue=20150601. URL consultato il 4 aprile 2020.
  4. ^ kompulsa.com, https://www.kompulsa.com/2018/02/23/5-differences-trueos-linux/. URL consultato il 6 April 2020.
  5. ^ trueos.org, https://www.trueos.org/blog/improving-trueos-openrc/. URL consultato il 6 April 2020.
  6. ^ (EN) forum.artixlinux.org, https://forum.artixlinux.org/index.php/topic,1769.0.html. URL consultato il 30 ottobre 2023.
  7. ^ (EN) devuan.org, https://www.devuan.org/os/announce/ascii-stable-announce-060818. URL consultato il 18 gennaio 2021.
  8. ^ GitHub, https://github.com/OpenRC/openrc/blob/master/user-guide.md#start-stop-daemon. URL consultato il 6 April 2020.
  9. ^ GitHub, https://github.com/OpenRC/openrc/blob/master/service-script-guide.md#the-default-functions. URL consultato il 6 April 2020.
  10. ^ wiki.gentoo.org, https://wiki.gentoo.org/wiki/OpenRC/openrc-init.
  11. ^ GitHub, https://github.com/OpenRC/openrc/blob/master/runit-guide.md. URL consultato il 6 April 2020.
  12. ^ GitHub, https://github.com/OpenRC/openrc/blob/master/s6-guide.md. URL consultato il 6 April 2020.

Template:Service management in Unix