UPDATE-RC.D(8)

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 ograniczoną funkcjonalność, wymaganą dla tych skryptów. Administratorzy systemów raczej nie powinni używać update-rc.d do zarządzania poziomami pracy systemu. Powinni bezpośrednio zmieniać dowiązania lub używać edytora 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ść wykonywania 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 wszystkich 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 argument nadaje ten sam kod zarówno do uruchomienia, jak i zatrzymania serwisu, podczas gdy podanie dwóch argumentów określa kod osobno dla uruchomienia (pierwszy argument) i osobno dla zatrzymania serwisu (drugi argument).

Jako zasadę należy przyjąć, że numer sekwencji dowiązania zatrzymującego powinien być równy 100 minus numer sekwencji dowiązania uruchamiającego; pozwala to na zatrzymywanie usług w kolejności odwrotnej 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 argumentó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 polecenia update-rc.d.

USUWANIE DOWIĄZAŃ
update-rc.d uruchomiony z opcją remove usuwa wszystkie dowiązania symboliczne 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 argumentu:
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-zamykania:
update-rc.d blabla start 45 S . start 31 0 6 .
Przykład polecenia wyłączającego systemowy skrypt inicjacji-i-zamykania:
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).