Myślę, że już coś o tym czytałem, ale nie pamiętam, jak to się robi. Zasadniczo mam usługę, w /etc/init.d
której chciałbym uruchomić się automatycznie podczas rozruchu. Pamiętam, że ma to coś wspólnego z symlinkowaniem skryptu do /etc/rc.d
katalogu, ale obecnie nie pamiętam. Jakie jest na to polecenie?
Wierzę, że jestem na pochodnej Fedory / CentOS.
fedora
boot
init-script
Naftuli Kay
źródło
źródło
/etc/init
,/etc/init.d
,/etc/rc.d
,/etc/rc.local
i kilka innych to ma?Odpowiedzi:
Jeśli korzystasz z systemu opartego na systemie Red Hat, jak wspomniałeś, możesz wykonać następujące czynności:
/etc/init.d
(np/etc/init.d/myscript
.). Skrypt powinien mieć następujący format:Format jest dość standardowy i możesz przeglądać istniejące skrypty w
/etc/init.d
. Następnie możesz użyć skryptu tak/etc/init.d/myscript start
lubchkconfig myscript start
.ckconfig
Strona podręcznika wyjaśnia nagłówka skryptu:Przykładowy kod start, stop i status wykorzystuje funkcje pomocnicze zdefiniowane w
/etc/init.d/functions
Włącz skrypt
Sprawdź, czy skrypt jest rzeczywiście włączony - powinieneś zobaczyć „on” dla wybranych poziomów.
źródło
Testujesz, na jakim poziomie uruchomieniowym normalnie zaczyna się Twoja maszyna.
Często jest to 5 lub 2 - istnieją różne konwencje, ale tak naprawdę nic nie ustalono, afaik. Ubuntu używa 2, podczas gdy poprzednia dystrybucja, z której korzystałem, zawsze była używana
Następnie tworzysz dowiązanie symboliczne ze skryptu inicjującego, może
/etc/init.d/foobar
do/etc/rc2.d/SXYfoobar
S oznacza „Uruchom ten skrypt na tym poziomie działania (tutaj: 2). XY jest dwucyfrową liczbą dziesiętną, która jest istotna dla sekwencji, skrypty są uruchamiane.
Jeśli zależysz od skryptu S45barfoo, który ma zostać uruchomiony przed Tobą, a S55foofoo zależy od skryptu, wybierz xy między 45 a 55. Dla równych liczb kolejność rozruchu jest niezdefiniowana.
Tymczasem Ubuntu przełączył się na inną procedurę uruchamiania, zwaną
upstart
.I uwaga: nie zawsze linki prowadzą do
/etc/rcX.d
- czasem jest/etc/init/rcX.d
lub coś podobnego, ale powinno być łatwe do znalezienia, gdzieś poniżej / etc.Jeśli chcesz uruchomić coś na końcu skryptów startowych,
/etc/rc.local
znajdź plik, którego szukasz, ale jeśli zależy to od X11 już uruchomionego, możesz poszukać opcji autostartu środowiska pulpitu lub/etc/X11/Xsession.d/
z podobnym wzorcem jak opisano powyżej.Jeśli zależysz od działającej sieci, istnieje osobny katalog (if-up.d) i dla podłączonych urządzeń, takich jak zewnętrzne napędy USB
/etc/udev/rules.d/
.źródło
update-rc.d
?Jak Naftuli Tzvi Kay pytał o Debiana powyżej: Począwszy od Debiana 6, twój skrypt powinien zawierać nagłówek LSB (Linux Standards Base), który wskazuje na jego zależności i możliwości ( patrz strona wiki Debiana ).
Jeśli obecny jest nagłówek LSB, możesz użyć go
insserv
do włączenia skryptu w proces rozruchu ( zobacz inną stronę wiki Debiana ).źródło