Czy /etc/init.d
katalog 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?
ubuntu
init-script
Falmarri
źródło
źródło
/etc/rc.d
którą widziałem ... Podejrzewam, że można go użyć w bsd.Odpowiedzi:
Ubuntu używa
/etc/init.d
do 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
.źródło
/etc/init.d
. Przejście na/etc/init/*.conf
później rozpoczęło się (8.04 wciąż było w stylu SysV, 10.04 już się zmieniało)./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.
źródło
Slackware nadal używa
/etc/rc.d
FreeBSD używa
/etc/rc.d
i/usr/local/etc/rc.d
źródło
Historycznie
/etc/rc.d
drzewo katalogów oznacza system Init, który jest zgodny z tradycją inicjalizacji systemu 4.4 BSD, którą zwykle nazywa sięrc
systemem init. Wszystkie nowoczesne systemy (Free / Open / Net) BSD i Slackware Linux są zgodne z tą tradycją./etc/init.d
Drzewo 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.
źródło
W rzeczywistości, przynajmniej w CentOS 6.8 Santiago,
/etc/init.d
jest tylko softlink do/etc/rc.d
.źródło
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.
źródło
Ok,
/etc/init.d
jest to miejsce, w którym możesz szybko wdrożyć skrypt init. Drugim krokiem w kierunku aktywacji tego skryptu jest uruchomieniechkconfig
na nim polecenia. Powiedzmy, że biegnieszchkconfig --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.źródło