/etc/rc.d vs /etc/init.d


15

La /etc/init.ddirectory 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?


1
in realtà arch linux è l'unica distro che usa /etc/rc.dche ho visto ... sospetto che potrebbe essere usato in bsd.
xenoterracide,

1
è usato in freebsd
wlraider70 il

Risposte:


16

Ubuntu usa /etc/init.dper 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.


2
Siamo spiacenti, ma /etc/init.d è lo standard, come parte dello standard SVR4 che gli script di avvio di Linux copiano.
Rich Homolka,

Il sito Web di Upstart afferma che Ubuntu lo utilizza dalla versione 6.10
badp,

@badp: Anche se 6.10, utilizzava ancora script init in stile SysV /etc/init.d. La transizione /etc/init/*.confiniziò più tardi (8.04 era ancora tutto in stile SysV, 10.04 era già in transizione).
Gilles 'SO- smetti di essere malvagio' il

2
Ubuntu è passato da Upstart a systemd dal 15.04.
PetroCliff,

7

/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ù.



5

Storicamente, l' /etc/rc.dalbero delle directory indica un sistema Init che segue la tradizione 4.4 BSD di inizializzazione del sistema, che di solito è chiamato rcsistema init. Tutto il moderno sistema BSD (Free / Open / Net) e Slackware Linux seguono questa tradizione.

L' /etc/init.dalbero 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.


E poi c'è AIX con "/etc/rc.d/init.d/". Un po 'di colonna A e un po' di colonna B.
DarkHeart

0

In realtà, almeno in CentOS 6.8 Santiago, /etc/init.dè solo un collegamento a /etc/rc.d.


Questo è esattamente ciò che intendevo, ahah. Mi dispiace per l'ortografia sbagliata, ho modificato la mia risposta ora.
chromechris,

Perché le persone votano senza dare una spiegazione? L'affermazione se non intenzionalmente irrilevante può ancora avere valore o significato per alcuni lettori alle prime armi. Spiega quando effettui il downgrade. I +1 per annullare l'effetto di -1
Asad Iqbal

0

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.


0

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 chkconfigcomando 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.