La /etc/init.d
directory di Ubuntu è esattamente equivalente (funzionalmente) a ciò che presumo sia più standard /etc/rc.d/
(almeno su Arch)? C'è qualche motivo particolare utilizzato can.din init.d invece di rc.d per gli script di avvio?
La /etc/init.d
directory di Ubuntu è esattamente equivalente (funzionalmente) a ciò che presumo sia più standard /etc/rc.d/
(almeno su Arch)? C'è qualche motivo particolare utilizzato can.din init.d invece di rc.d per gli script di avvio?
Risposte:
Ubuntu usa /etc/init.d
per archiviare gli script SysVinit perché Ubuntu si basa su Debian ed è quello che usa Debian. Red Hat utilizza /etc/rc.d/init.d
. Dimentico ciò che usa Slackware. Semplicemente non esiste una posizione standard.
Ubuntu è in procinto di passare da SysVinit a Upstart , che utilizza i file di configurazione in /etc/init
.
/etc/init.d
. La transizione /etc/init/*.conf
iniziò più tardi (8.04 era ancora tutto in stile SysV, 10.04 era già in transizione).
/etc/init.d era la vecchia posizione storica di SVR4. Ho dimenticato perché redhat ha aggiunto il livello /etc/rc.d/. Penso di isolare le cose su rc.d, ma poi ho dovuto aggiungere comunque un sacco di link simbolici per la retrocompatibilità. Quindi c'è /etc/init.d in redhat, solo link simbolici altrove.
Quindi la posizione standard è /etc/init.d, sebbene possa essere un collegamento simbolico non una directory reale.
Ci sono state alcune distro Linux molto vecchie che hanno copiato BSD con /etc/rc.local ma praticamente nessuno lo usa più.
Storicamente, l' /etc/rc.d
albero delle directory indica un sistema Init che segue la tradizione 4.4 BSD di inizializzazione del sistema, che di solito è chiamato rc
sistema init. Tutto il moderno sistema BSD (Free / Open / Net) e Slackware Linux seguono questa tradizione.
L' /etc/init.d
albero delle directory indica il sistema init System V (SysV) che segue la tradizione di inizializzazione del sistema AT&T UNIX, SunOS, Solaris. Questo è comunemente chiamato il sistema SysV Init. Debian proprio segue ancora questa tradizione nella serie Wheezy, ma prevede di utilizzare SystemD nella serie Jessie. Storicamente, RedHat e derivati hanno usato SysV Init, ma non lo fanno più.
Inoltre, nel tempo, le distribuzioni hanno adottato le caratteristiche di entrambi gli schemi init.
In realtà, almeno in CentOS 6.8 Santiago, /etc/init.d
è solo un collegamento a /etc/rc.d
.
PuppyLinux ha sia /etc/rc.d che /etc/init.d , né essendo un collegamento simbolico. Ciò che è un collegamento simbolico è /etc/rc.d/init.d , che collega un livello a /etc/init.d (sto guardando un cucciolo basato su Slackware - ci sono anche Ubuntu e altre versioni .) C'è un file README.txt in ciascuno, che spiega il loro approccio.
Ok, quindi, /etc/init.d
è un posto in cui è possibile distribuire rapidamente uno script init. Il secondo passo verso l'attivazione di questo script è quello di eseguire un chkconfig
comando su di esso. Diciamo che corri chkconfig --add <yourscript>
, verranno creati collegamenti simbolici tra /etc/init.d/<yourscript>
e/etc/rc.d/rcX.d/S50<script>
per esempio. X in rcX.d che rappresenta il numero di runlevel dello script e S50 che rappresenta il tipo di script (ce ne sono due di questi tipi, S & K, S dice al sistema di avviare lo script all'avvio e K dice al sistema di chiudi lo script con garbo quando chiudi. Il numero dopo S / K rappresenta l'ordine in cui si verificano, nel caso in cui tu abbia degli script che dipendono dal fatto che altri siano attivi per primi). Per impostazione predefinita, se non viene specificato alcun runlevel all'interno dello script o quando si emette il comando runlevel, CentOS6 crea script S50 per runlevel 2,3,4,5 e K50 per runlevel 0,1,6.
/etc/rc.d
che ho visto ... sospetto che potrebbe essere usato in bsd.