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