INITTAB(5)

NAZWA
inittab - format pliku inittab używanego przez proces init, kompatybilny z sysv

OPIS
Plik inittab opisuje które procesy zostały uruchomione podczas startu i podczas normalnego działania (np. /etc/init.d/boot, /etc/init.d/rc, getty...). init(8) rozróżnia różne poziomy pracy, z których każdy może mieć swój własny zestaw procesów uruchamianych na starcie. Dopuszczalne poziomy pracy to 0-6 i A, B i C dla wpisów ondemand (na żądanie). Wpis w pliku inittab ma następujący format:

    id:poziomy pracy:akcja:proces

Linie rozpoczynające się od "#" są ignorowane.

id  jest unikalną sekwencją 1-4 znaków, która identyfikuje wpis w inittab (dla wersji sysvinit skompilowanych ze starą biblioteką libc5 (< 5.2.18 lub z bibliotekami a.out, jego długość może być ograniczona do dwóch znaków).

    Uwaga: Dla procesów getty, lub innych procesów loginowych, pole id powinno być końcówką odpowiadającego im tty, np. 1 dla tty1. Część bardzo starych programów login może oczekiwać takiej konwencji, choć trudno podać w tej chwili jakiś przykład.

poziomy pracy
    opisują, w których poziomach pracy podjąć podaną akcję.

akcja
    opisuje jaką akcję podjąć.

proces
    podaje proces, który należy uruchomić. Jeśli pole procesu rozpoczyna się znakiem "+", init nie dokona dla niego wpisów wtmp i utmp. Jest to wymagane dla getty, które wolą robić to samodzielnie. Jest to też błąd historyczny. Ograniczenie długości tego pola wynosi 127 znaków.

    Please note that including certain characters in the process field will result in init attempting to launch a shell to interpret the command contained in the process field. The characters which will trigger a shell are: ~`!$^&*()=|}[];

    On systems which do not have a shell to be launched or which do not wish to use a shell to interpret the process field, the process field can be prefixed with the @ symbol. The @ will be ignored and everything followed will be treated as a command to be launched, literally, by the init service.

    In cases where both a + and @ sign are to be used (to turn off logging and shell interpretation), place the + sign before the @ symbol. Both flags will be handled and then everything following the @ will be handled by init

Pole poziomy pracy może zawierać wiele znaków dla różnych poziomów. Na przykład, 123 określa, że proces powinien być uruchamiany w poziomach pracy 1, 2 i 3. poziomy pracy do wpisów ondemand mogą zawierać A, B lub C. Pole to jest ignorowane w przypadku następujących wpisów: sysinit, boot i bootwait.

Gdy poziom pracy jest zmieniany, zabijane są wszystkie procesy, które nie są podane w nowym poziomie pracy, zaczynając od sygnału SIGTERM, a następnie SIGKILL.

Dopuszczalne akcje w polu akcje to:

respawn
    Proces będzie uruchomiony od nowa po każdym jego zakończeniu (np. getty).

wait
    Proces będzie uruchomiony raz (gdy nadejdzie właściwy poziom pracy), a init będzie czekał na jego zakończenie.

once
    Proces będzie wywołany raz po wejściu we właściwy poziom pracy.

boot
    Proces zostanie wywołany podczas rozruchu. Pole poziomy pracy jest ignorowane.

bootwait
    Proces zostanie wywołany podczas rozruchu, podczas gdy init czeka na jego zakończenie (np. /etc/rc). Pole poziomy pracy jest ignorowane.

off Nie robi nic.

ondemand
    Proces, który jest zaznaczony poziomem pracy ondemand będzie wywoływany za każdym razem, gdy zostanie wywołany wskazany poziom żądania. Mimo to jednak, nie nastąpi zmiana poziomu pracy (poziomy pracy ondemand to "a", "b", "c").

initdefault
    Pole to określa poziom pracy, który powinien być uruchomiony po procesie rozruchu. Jeśli żaden taki nie istnieje, init zapyta o poziom pracy na konsoli. Pole proces jest ignorowane.

sysinit
    Proces zostanie wywołany podczas rozruchu. Zostanie wywołany przed wszelkimi wpisami boot czy bootwait. Pole poziomy pracy jest ignorowane.

powerwait
    Proces zostanie wywołany w czasie problemów z zasilaniem. init jest z reguły informowany o takim zdarzeniu przez proces porozumiewający się z podłączonym do komputera UPS-em. init będzie czekał na zakończenie tego procesu przed dalszą kontynuacją.

powerfail
    Podobne do powerwait, lecz init nie będzie czekał na zakończenie tego procesu.

powerokwait
    Proces zostanie wywołany, gdy init otrzyma sygnał, że zasilanie zostało przywrócone.

powerfailow
    Proces zostanie wykonany, gdy init dowie się o krytycznym poziomie baterii zewnętrznego UPS-a i o właśnie zawodzącym zasilaniu (jeśli zewnętrzny UPS i monitorujący go proces są w stanie wykryć taki stan).

ctrlaltdel
    Proces zostanie wykonany gdy init otrzyma sygnał SIGINT. Znaczy to, że ktoś na konsoli nacisnął kombinację CTRL-ALT-DEL. Zazwyczaj wywołuje się wtedy coś w rodzaju shutdown, zarówno w celu przejścia do poziomu jednoużytkownikowego, jak i do ponownego uruchomienia komputera.

kbrequest
    Proces zostanie wywołany gdy init otrzyma sygnał z sterownika klawiatury, mówiący że na konsoli została naciśnięta specjalna kombinacja klawiszy.

    Dokumentacja tej funkcji nie jest jeszcze kompletna; więcej danych można znaleźć w pakietach kbd-x.xx (w chwili powstania tego tekstu było to kbd-0.94). Ogólnie, można mapować niektóre kombinacje klawiszy do akcji "KeyboardSignal". Na przykład, aby zmapować na ten cel kombinację alt plus strzałka w górę, należy użyć następującego wpisu w swoim pliku keymap:

    alt keycode 103 = KeyboardSignal

PRZYKŁADY
Oto przykład inittab, który zawiera stary inittab Linuksa:

    # inittab do Linuksa
    id:1:initdefault:
    rc::bootwait:/etc/rc
    1:1:respawn:/etc/getty 9600 tty1
    2:1:respawn:/etc/getty 9600 tty2
    3:1:respawn:/etc/getty 9600 tty3
    4:1:respawn:/etc/getty 9600 tty4

Ten plik inittab wywołuje /etc/rc podczas rozruchu i uruchamia getty dla tty1-tty4.

Bardziej wykwintny inittab, z różnymi poziomami pracy (patrz komentarze):

    # Poziom, w którym startować
    id:2:initdefault:

    # Skrypt inicjujący/konfigurujący system w czasie rozruchu.
    si::sysinit:/etc/init.d/rcS

    # Co robić w trybie jednoużytkownikowym.
    ~:S:wait:/sbin/sulogin

    # /etc/init.d wykonuje skrypty S i K w trakcie
    # zmiany poziomu pracy.
    #
    # Poziom pracy 0 oznacza zatrzymanie.
    # Poziom pracy 1 jest jednoużytkownikowy.
    # Poziomy pracy 2-5 są wieloużytkownikowe.
    # Poziom pracy 6 oznacza ponowne uruchomienie.

    l0:0:wait:/etc/init.d/rc 0
    l1:1:wait:/etc/init.d/rc 1
    l2:2:wait:/etc/init.d/rc 2
    l3:3:wait:/etc/init.d/rc 3
    l4:4:wait:/etc/init.d/rc 4
    l5:5:wait:/etc/init.d/rc 5
    l6:6:wait:/etc/init.d/rc 6

    # Co zrobić przy ctrl+alt+del.
    ca::ctrlaltdel:/sbin/shutdown -t1 -h now

    # Poziomy 2 i 3: getty na konsolach wirtualnych
    # Poziom      3: getty na terminalu (ttyS0) i modemie (ttyS1)
    1:23:respawn:/sbin/getty tty1 VC linux
    2:23:respawn:/sbin/getty tty2 VC linux
    3:23:respawn:/sbin/getty tty3 VC linux
    4:23:respawn:/sbin/getty tty4 VC linux
    S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320
    S1:3:respawn:/sbin/mgetty -x0 -D ttyS1

PLIKI
/etc/inittab

AUTOR
init was written by Miquel van Smoorenburg (miquels@cistron.nl). This manual page was written by Sebastian Lederer (lederer@francium.informatik.uni-bonn.de) and modified by Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de).

ZOBACZ TAKŻE
init(8), telinit(8)