update-rc.d
NAZWA
update-rc.d - instaluje lub usuwa dowiązania do skryptów startowych w stylu System-V
SKŁADNIA
update-rc.d [-n] [-f] nazwa remove
update-rc.d [-n] nazwa defaults [NN | SS KK]
update-rc.d [-n] nazwa start|stop NN runlevel [runlevel]... .
start|stop NN runlevel [runlevel]... . ...
OPIS
update-rc.d automatycznie aktualizuje dowiązania do skryptów w stylu
System V. Dowiązania o nazwie /etc/rcrunlevel.d/NNnazwa są kierowane
do skryptu /etc/init.d/nazwa. Uruchamiane są przez init, gdy zmieniany
jest tryb pracy (runlevel), i ogólnie używane są do uruchamiania oraz
zatrzymywania pracy serwisów systemowych, takich jak demony. runlevel
jest jednym z trybów pracy obsługiwanym przez init, 0123456789S, gdzie
NN jest dwucyfrowym kodem używanym przez init do określenia kolejności
uruchamiania skryptów.
Ten podręcznik opisuje jedynie sposób użycia i zachowanie się polecenia
update-rc.d. Szczegóły dotyczące mechanizmów skryptów startowych w
stylu System V są zawarte w opisie init(8) oraz w dokumencie Debian
Policy Manual.
Proszę zauważyć, że program został zaprojektowany do używania go w
skryptach instalacyjnych pakietów i w związku z tym ma bardzo ogranic-
zoną funkcjonalność, wymaganą dla tych skryptów. Administratorzy sys-
temów raczej nie powinni używać update-rc.d do zarządzania poziomami
pracy systemu. Powinni bezpośrednio zmieniać dowiązania lub używać edy-
tora poziomów pracy, takiego jak sysv-rc-conf lub bum.
INSTALOWANIE DOWI�ĄZA�Ń DO SKRYPT�ÓW STARTOWYCH
update-rc.d uruchamiany z opcjami defaults, start lub stop, tworzy
dowiązania o nazwie /etc/rcrunlevel.d/[SK]NNnazwa do skryptu
/etc/init.d/nazwa.
Jeśli istnieje już jakiś plik o nazwie /etc/rcrunlevel.d/[SK]??nazwa,
to update-rc.d nie tworzy dowiązania. Dzięki temu administrator systemu
może poprzestawiać dowiązania (zmieniając tym samym kolejność wykonywa-
nia skryptów) i jeżeli pozostanie przynajmniej jedno dowiązanie, to ta
konfiguracja utworzona przez administratora nie zostanie nadpisana
przez update-rc.d. Program tworzy dowiązania tylko wtedy, gdy żadne
dowiązanie nie jest obecne, tj. gdy wydaje się, że usługa nigdy
wcześniej nie była zainstalowana.
Częstym błędem popełnianym przez administratorów jest usuwanie wszyst-
kich dowiązań z przekonaniem, że tym sposobem "wyłączy się" usługę,
czyli że usługa nie będzie już uruchamiana. Jednakże, jeżeli usunie się
wszystkie dowiązania, to podczas kolejnej aktualizacji pakietu, jego
skrypt poinstalacyjny uruchomi update-rc.d, które ponownie utworzy
dowiązania, zgodnie z ustawieniami podanymi przez opiekuna pakietu.
Poprawnym sposobem wyłączania usług jest skonfigurowanie usługi jako
zatrzymanej we wszystkich poziomach pracy, w których wcześniej była
uruchamiana. W systemie init z Systemu V oznacza to zmienienie nazwy
dowiązaniom symbolicznym z S na K.
Jeśli użyta jest opcja defaults, to update-rc.d utworzy dowiązanie do
uruchomienia serwisu w trybach pracy 2345 oraz zatrzymania serwisu w
trybach pracy 016. Domyślnie, wszystkie dowiązania będą miały kod
określający kolejność o wartości 20, ale może to zostać określone przez
dodanie jednego argumentu NN lub dwóch argumentów SS i KK. Jeden argu-
ment nadaje ten sam kod zarówno do uruchomienia, jak i zatrzymania ser-
wisu, podczas gdy podanie dwóch argumentów określa kod osobno dla uru-
chomienia (pierwszy argument) i osobno dla zatrzymania serwisu (drugi
argument).
Jako zasadę należy przyjąć, że numer sekwencji dowiązania zatrzy-
mującego powinien być równy 100 minus numer sekwencji dowiązania
uruchamiającego; pozwala to na zatrzymywanie usług w kolejności odwrot-
nej do tej, w której były uruchamiane. Oczywiście, dlatego domyślnym
numerem sekwencji zatrzymującej powinno być 80. Wartością domyślną jest
jednak 20 z powodu starego błędu w update-rc.d, którego nie można łatwo
usunąć, gdyż istnieje ryzyko popsucia innych programów.
Zamiast argumentu defaults, można podać jeden lub więcej zbiorów argu-
mentów określających poszczególne poziomy pracy, w których usług będą
uruchamiane lub zatrzymywane. Każdy z tych zbiorów argumentów zaczyna
się od słowa kluczowego start lub stop oraz numeru sekwencji nn, po
którym następuje jeden lub więcej poziomów pracy. Zbiór ten jest
zakończony kropką. Zazwyczaj przy takim podawaniu będzie użyty jeden
zbiór start i jeden stop. Jeżeli wymagane jest podanie różnych numerów
sekwencji w różnych poziomach pracy, to można użyć kilku zbiorów start
i stop. Jeżeli ten sam poziom pracy występuje w kilku zbiorach, to
liczy się ten ostatni. Dlatego nie jest możliwe utworzenie kilku
dowiązań start lub stop dla tej samej usługi w pojedynczym katalogu
trybu pracy.
Skrypt /etc/init.d/nazwa musi już istnieć w momencie wywołania polece-
nia update-rc.d.
USUWANIE DOWI�ĄZA�Ń
update-rc.d uruchomiony z opcją remove usuwa wszystkie dowiązania sym-
boliczne do skryptu /etc/init.d/nazwa z katalogów /etc/rcrunlevel.d.
Sam skrypt musi być wcześniej usunięty. Jeżeli skrypt wciąż istnieje,
to update-rc.d przerywa działanie, zwracając odpowiedni komunikat
błędu.
update-rc.d jest zazwyczaj uruchamiany ze skryptu usuwającego pakiet,
jeżeli przekazano temu skryptowi argument purge. Jakiekolwiek pliki w
katalogach /etc/rcrunlevel.d, które nie są dowiązaniami symbolicznymi
do /etc/init.d/nazwa nie będą zmieniane.
OPCJE
-n Niczego nie rusza, tylko pokazuje co mogłoby być zmienione.
-f Zmusza do usunięcia dowiązań, nawet w przypadku, gdyby skrypt
/etc/init.d/nazwa wciąż istniał.
PRZYK�ŁADY
Utworzenie domyślnych dowiązań:
update-rc.d blabla defaults
Odpowiednikiem tego polecenia będzie:
update-rc.d blabla start 20 2 3 4 5 . stop 20 0 1 6 .
Bardziej typowa wersja tego polecenia, używająca wprost zbioru argu-
mentu:
update-rc.d blabla start 30 2 3 4 5 . stop 70 0 1 6 .
Usuwa wszystkie dowiązania dla skryptu (zakładając, że blabla zostało
już usunięte):
update-rc.d blabla remove
Przykład wyłączania usługi:
update-rc.d -f blabla remove
update-rc.d blabla stop 20 2 3 4 5 .
Przykład polecenia instalującego systemowy skrypt inicjacji-i-zamyka-
nia:
update-rc.d blabla start 45 S . start 31 0 6 .
Przykład polecenia wyłączającego systemowy skrypt inicjacji-i-zamyka-
nia:
update-rc.d -f blabla remove
update-rc.d blabla stop 45 S .
BŁĘDY
Patrz http://bugs.debian.org/sysv-rc.
PLIKI
/etc/init.d/
Katalog zawierający aktualne skrypty startowe.
/etc/rc?.d/
Katalog zawierający dowiązania używane przez init i modyfikowane
przez update-rc.d.
/etc/init.d/skeleton
Przykładowy skrypt do wykorzystania przez programistę przy
tworzeniu własnych skryptów init.d.
ZOBACZ TAKŻE
Debian Policy Manual,
/etc/init.d/skeleton,
sysv-rc-conf(8), bum(8), init(8).