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


15

Czy /etc/init.dkatalog ubuntu jest dokładnie równoważny (funkcjonalnie) z tym, co uważam za bardziej standardowe /etc/rc.d/(przynajmniej na arch)? Czy jest jakiś konkretny powód, dla którego kanoniczny używał init.d zamiast rc.d dla skryptów startowych?


1
arch arch Linux jest jedyną dystrybucją, /etc/rc.dktórą widziałem ... Podejrzewam, że można go użyć w bsd.
ksenoterrakid

1
jest używany w freebsd
wlraider70

Odpowiedzi:


16

Ubuntu używa /etc/init.ddo przechowywania skryptów SysVinit, ponieważ Ubuntu jest oparte na Debianie i tego właśnie używa Debian. Używa Red Hat /etc/rc.d/init.d. Zapomniałem, czego używa Slackware. Po prostu nie ma standardowej lokalizacji.

Ubuntu przechodzi obecnie z SysVinit na Upstart , który używa plików konfiguracyjnych w /etc/init.


2
Przykro nam, ale /etc/init.d jest standardem, jako część standardu SVR4 kopiowanego przez skrypty startowe Linuksa.
Rich Homolka

Strona internetowa Upstart twierdzi, że Ubuntu używa go od wersji 6.10
badp

@badp: Chociaż 6.10, nadal używałem skryptów inicjujących typu SysV w /etc/init.d. Przejście na /etc/init/*.confpóźniej rozpoczęło się (8.04 wciąż było w stylu SysV, 10.04 już się zmieniało).
Gilles „SO- przestań być zły”,

2
Ubuntu przeszedł z Upstart na systemd od 15.04.
PetroCliff

7

/etc/init.d było starą historyczną lokalizacją dla SVR4. Zapomniałem, dlaczego redhat dodał poziom /etc/rc.d/. Myślę, że muszę odizolować rzeczy od rc.d, ale i tak musiałem dodać kilka dowiązań symbolicznych dla kompatybilności wstecznej. Tak więc w redhat jest /etc/init.d, tylko symbolicznie dowiązuje gdzie indziej.

Zatem standardową lokalizacją jest /etc/init.d, chociaż może to być dowiązanie symboliczne, a nie rzeczywisty katalog.

Było kilka naprawdę starych dystrybucji Linuksa, które kopiowały BSD z /etc/rc.local, ale prawie nikt już tego nie używa.



5

Historycznie /etc/rc.ddrzewo katalogów oznacza system Init, który jest zgodny z tradycją inicjalizacji systemu 4.4 BSD, którą zwykle nazywa się rcsystemem init. Wszystkie nowoczesne systemy (Free / Open / Net) BSD i Slackware Linux są zgodne z tą tradycją.

/etc/init.dDrzewo katalogów oznacza System V (SysV) System startowy, który następuje AT & T UNIX, SunOS, Solaris tradycję inicjalizacji systemu. Jest to powszechnie nazywane systemem SysV Init. Właściwy Debian nadal podąża za tą tradycją w serii Wheezy, ale planuje użyć SystemD w serii Jessie. Historycznie RedHat i pochodne korzystały z SysV Init, ale już nie.

Z czasem cechy obu schematów inicjacji zostały przyjęte przez dystrybucje.


A potem jest AIX z „/etc/rc.d/init.d/”. Trochę kolumny A i trochę kolumny B.
DarkHeart

0

W rzeczywistości, przynajmniej w CentOS 6.8 Santiago, /etc/init.djest tylko softlink do /etc/rc.d.


Właśnie o to mi chodziło, haha. Przepraszam za złą pisownię, zredagowałem teraz swoją odpowiedź.
chromechris

Dlaczego ludzie głosują bez wyjaśnienia? Oświadczenie, chyba że celowo nieistotne, może mieć wartość lub znaczenie dla początkującego czytelnika. Wyjaśnij, kiedy przegłosujesz. Daję +1, aby cofnąć efekt -1
Asad Iqbal

0

PuppyLinux ma zarówno /etc/rc.d, jak i /etc/init.d , przy czym żadne z nich nie jest dowiązaniem symbolicznym. To, co jest dowiązaniem symbolicznym, to /etc/rc.d/init.d , który łączy poziom z /etc/init.d (Patrzę na Slackware Puppy - są też Ubuntu i inne smaki .) W każdym znajduje się plik README.txt, wyjaśniający ich podejście.


0

Ok, /etc/init.djest to miejsce, w którym możesz szybko wdrożyć skrypt init. Drugim krokiem w kierunku aktywacji tego skryptu jest uruchomienie chkconfigna nim polecenia. Powiedzmy, że biegniesz chkconfig --add <yourscript>, pomiędzy /etc/init.d/<yourscript>i zostaną utworzone symboliczne linki/etc/rc.d/rcX.d/S50<script>na przykład. X w rcX.d reprezentuje numer poziomu uruchamiania skryptu, a S50 reprezentuje typ skryptu (istnieją dwa z tych typów, S & K, S nakazuje systemowi uruchomienie skryptu podczas uruchamiania, a K nakazuje systemowi wyjdź ze skryptu z wdziękiem po zamknięciu. Liczba po S / K reprezentuje kolejność, w jakiej się one zdarzają, na wypadek, gdyby niektóre skrypty zależały od tego, czy inne są aktywne jako pierwsze). Domyślnie, jeśli w skrypcie nie określono żadnego poziomu uruchamiania, lub podczas wydawania polecenia poziomu pracy, CentOS6 tworzy skrypty S50 dla poziomów uruchamiania 2,3,4,5 oraz K50 dla poziomów uruchamiania 0,1,6.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.