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.
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 został napisany przez Miquela van Smoorenburga (miquels@cistron.nl),
strona podręcznika została napisana przez Sebastiana Lederera
(lederer@francium.informatik.uni-bonn.de) i zmodyfikowana przez Michaela
Haardta (u31b3hs@pool.informatik.rwth-aachen.de).
ZOBACZ TAKŻE¶
init(8),
telinit(8)
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man
są: Przemek Borys (PTM) <pborys@dione.ids.pl> i Michał
Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu manpages-pl;
uwagi, pomoc, zgłaszanie błędów na stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją
2.88 oryginału.