Provided by:
manpages-pl_20060617-4_all 
NAZWA
init, telinit - sterowanie procesu inicjujcego
SK/LADNIA
/sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx ] [ 0123456Ss ]
/sbin/telinit [ -t sekundy ] [ 0123456sSQqabcUu ]
OPIS
Init
Init jest przodkiem wszystkich procesow. Jego glownym zadaniem jest
stworzenie procesow w oparciu o skrypt zapisany w pliku /etc/inittab
(patrz te inittab(5)). Ten plik zawiera zwykle pozycje, ktore ka
procesowi init pomnaa getty na kadej linii, na ktore uytkownicy mog si
zalogowa. Kontroluje te samodzielne procesy, ktorych istnienie jest
konieczne w danym systemie.
POZIOMY PRACY
Runlevel (poziom pracy) jest to konfiguracja oprogramowania systemu,
ktora pozwala zaistnie tylko wytypowanym grupom procesow. Procesy
tworzone przez init dla kadego z tych poziomow s zdefiniowane w pliku
/etc/inittab. Init moe by w jednym z omiu poziomow pracy: 0-6 i S lub
s. Poziom pracy jest zmieniany przez uruchomienie telinit przez
uprzywilejowanego uytkownika. telinit wysyla odpowiednie sygnaly do
init, mowice, w jaki tryb ma przej.
Tryby pracy 0, 1, oraz 6 s zarezerwowane. Tryb 0 jest uywany, by
zatrzyma system, tryb 6, by przeladowa system (reboot), a tryb 1, by
wprowadzi system w tryb pracy jednego uytkownika (single-user mode).
Tryb S nie jest pomylany dokladnie tak, by go uywa bezporednio, lecz
raczej dla skryptow wykonywanych przy wchodzeniu w tryb 1. Aby uzyska
wicej informacji na ten temat, zobacz strony podrcznika dla shutdown(8)
i inittab(5).
Tryby pracy 7-9 te s poprawne, cho niezbyt udokumentowane. To z powodu
"tradycyjnych" wariantow Uniksa nie uywajcych ich. Jeli jeste ciekaw,
to wiedz, e poziomy S i s s w rzeczywistoci takie same. Wewntrznie s
to tylko zastpcze nazwy dla takich samych trybow pracy.
BOOTOWANIE
Po tym jak init jest wywolany w ostatnim kroku sekwencji bootujcej
jdra, szuka pliku /etc/inittab w celu znalezienia w nim pola typu
initdefault (patrz te inittab(5)). Pole initdefault okrela pocztkowy
poziom pracy systemu. Jeli nie ma tam takiego pola (lub wcale nie
istnieje /etc/inittab), poziom pracy musi by podany z konsoli
systemowej.
Poziom S lub s wprowadza system w tryb jednego uytkownika i nie wymaga
pliku /etc/initttab. W trybie jednego uytkownika, wywolywany jest
/sbin/sulogin na urzdzeniu /dev/console.
Podczas wchodzenia w tryb jednego uytkownika, proces init inicjuje
ustawienia stty konsoli na bezpieczne wartoci. Ustawiany jest tryb
clocal. Prdko sprztu i handshaking nie s zmieniane.
Podczas wchodzenia w tryb wielu uytkownikow po raz pierwszy, init
wykonuje pozycje boot i bootwait, by pozwoli systemom plikow zamontowa
si zanim uytkownicy bd mogli si zalogowa. Potem wykonywane s wszystkie
pozycje przypisane danemu poziomowi pracy.
Kiedy nowy proces startuje, init sprawdza najpierw, czy istnieje plik
/etc/initscript. Jeli tak, uywa tego skryptu by ten proces zacz.
Za kadym razem, gdy proces potomny si zakoczy, init zapamituje ten fakt
i powod mierci procesu jest zapisany w /var/run/utmp i /var/log/wtmp,
pod warunkiem, e te pliki istniej.
ZMIENIANIE TRYB'OW PRACY
Po tym jak "namnoone" zostan wszystkie wyszczegolnione procesy, init
czeka na mier kadego swojego procesu potomnego, sygnal braku energii
lub zasygnalizowanie przez telinit zmiany poziomu dzialania systemu.
Gdy wystpi jeden sporod tych trzech warunkow, ponownie sprawdzany jest
plik /etc/inittab, poniewa nowe pola mog by do niego dodane w kadej
chwili. Jednakowo, init wci oczekuje na wystpienie jednego z tych
trzech warunkow. By przygotowa si na natychmiastow odpowied, telinit Q
albo uyta komenda q moe obudzi proces init, by jeszcze raz przeczytal
plik /etc/inittab.
Jeli init nie jest w trybie jednego uytkownika i odbiera sygnal zaniku
energii (SIGPWR), czyta plik /etc/powerstatus. Nastpnie uruchamia
polecenie zalene od zawartoci tego pliku:
F(AIL) Zawodzi zasilanie, UPS dostarcza mocy. Wykonuje wpisy powerwait
i powerfail.
O(K) Zasilanie powrocilo, uruchamia wpisy powerokwait.
L(OW) Zasilanie zawodzi, a UPS-owi wyczerpuje si bateria. Wykonuje
wpisy powerfailnow.
Jeeli plik /etc/powerstatus nie istnieje lub zawiera cokolwiek innego
ni jedn z liter F, O lub L, init zachowa si tak, jakby przeczytal F.
Uywanie SIGPWR i /etc/powerstatus nie jest zalecane. Jeeli kto chce
wspoldziala z init-em, powinien uy kanalu kontroli /dev/initctl - prosz
przeczyta kod rodlowy pakietu sysvinit po wicej dokumentacji dotyczcej
tego kanalu.
Gdy init jest proszony o zmian poziomu dzialania, wysyla sygnal
ostrzegawczy SIGTERM do wszystkich procesow, ktore nie s zdefiniowane w
nowym poziomie pracy. Potem czeka 5 sekund zanim "na sil" zakoczy te
procesy poprzez sygnal SIGKILL. Zauwa, e init zaklada, e wszystkie te
procesy (i ich potomki) pozostaj w tej samej grupie procesow, ktor init
oryginalnie im utworzyl. Jeeli jakikolwiek proces zmienil sw przynaleno
do grupy procesow to nie odbierze tych sygnalow. Tego typu procesy musz
by koczone osobno (np. demony wszelakie - przyp. tlum.).
TELINIT
/sbin/telinit jest symbolicznym dowizaniem do /sbin/init. Pobiera on
jednoznakowy argument i sygnaly init, by podjl stosowne dzialanie.
Ponisze argumenty mona stosowa jako rozkazy dla telinit:
0,1,2,3,4,5 lub 6
mowi procesowi init by przelczyl w odpowiedni poziom dzialania.
a,b,c ka procesowi init by przetwarzal tylko te pola pliku
/etc/inittab, ktore odnosz si do poziomu pracy a,b lub c.
Q lub q
ka procesowi init jeszcze raz przeczyta plik /etc/inittab.
S lub s
mowi eby init przelczyl w tryb jednego uytkownika.
U lub u
ka procesowi init przeladowa si (zachowujc obecny stan). Nie
wystpuje ponowne odczytywanie pliku /etc/inittab. Poziom pracy
powinien by ustawiony na Ss12345, w przeciwnym wypadku danie moe
by "delikatnie" zignorowane.
telinit moe take powiedzie procesowi init, jak dlugo powinien on czeka
midzy wysylaniem sygnalow SIGTERM i SIGKILL. Domyln wartoci jest 5
sekund, ale moe by ona zmieniona za pomoc opcji -t sekundy.
telinit moe by wywolywany tylko przez uytkownikow uprzywilejowanych.
Wywolany init sprawdza czy jest procesem inicjujcym init czy te jest
wywolany jako telinit poprzez wgld w swoj identyfikator procesu;
prawdziwy identyfikator procesu init ma zawsze warto 1. Teraz ju
wiadomo, e zamiast wywolywa telinit moesz te po prostu uy init, a nie
skrotu.
RODOWISKO
Init ustawia nastpujce zmienne rodowiskowe dla wszystkich swoich
dzieci:
PATH /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
INIT_VERSION
Jak mowi nazwa - wersja programu. Uyteczne dla okrelenia, jeli
skrypt uruchamia si bezporednio z init.
RUNLEVEL
Obecny poziom pracy systemu.
PREVLEVEL
Poprzedni poziom pracy systemu (uyteczne po zmianie poziomow).
CONSOLE
Konsola systemu. Tak naprawd ta warto jest przyjmowana od jdra;
jednak jeli nie jest ustawiona init ustawi j domylnie na
/dev/console.
FLAGI STARTOWE
Jest moliwe by przekaza pewne flagi do procesu init z monitora
startowego (np. LILO). Init dopuszcza stosowanie nastpujcych flag:
S, single
Bootowanie w trybie jednego uytkownika. W tym trybie /etc/inittab
jest sprawdzany (wczytywany) i skrypty startowe rc s zwykle
uruchamiane zanim wystartuje powloka dla trybu jednego uytkownika.
1-5 Poziom dzialania w jakim system ma wystartowa.
-b, emergency
Wejcie bezporednio w tryb jednego uytkownika bez uruchamiania
adnych innych skryptow startowych.
-a, auto
Program ladujcy LILO dodaje slowo "auto" do linii polece, jeeli
uruchomil jdro z domyln lini polece (uytkownik jej nie zmienial).
Jeeli init znajdzie to slowo, ustawi zmienn rodowiskow "AUTOBOOT"
na "yes". Prosz zauway, e nie mona tego uy jako rodka
bezpieczestwa - oczywici uytkownik mogl rcznie w linii polece
wpisa "auto" uy opcji -a.
-z xxx
Argument opcji -z jest ignorowany. Moe by uyta do wydluenia linii
polece, tak eby zajmowala wicej miejsca na stosie. Init moe wtedy
manipulowa lini polece, tak eby ps(1) pokazywalo biecy tryb
uruchomienia.
INTERFEJS
Init nasluchuje wiadomoci na lczu fifo w /dev, /dev/initctl. Telinit
uywa tego do komunikacji z procesem init. Ten interfejs nie jest zbyt
dobrze udokumentowany czy skoczony. Zainteresowani powinni przestudiowa
plik initreq.h w podkatalogu src/ archiwum tarowego z kodem rodlowym
init.
SYGNA/LY
Init reaguje na nastpujce sygnaly:
SIGHUP
Ma ten sam efekt co telinit q.
SIGUSR1
Po odebraniu tego sygnalu, init zamyka i ponownie otwiera swoj
kontrolk fifo, /dev/initctl. Uyteczne w przypadku skryptow
startowych, gdy przemontowywany jest katalog /dev.
SIGINT
Zwykle ten sygnal jest wysylany z jdra by powiedzie, e wcinita
zostala kombinacja klawiszy CTRL-ALT-DEL. Powoduje to rozpoczcie
akcji ctrlaltdel.
SIGWINCH
Jdro wysyla ten sygnal jeli wcinity zostal klawisz KeyboardSignal.
Aktywuje to akcj kbrequest.
ZGODNE Z
Init jest kompatybilny z init obecnym System V. Dziala razem ze
skryptami w katalogach /etc/init.d i /etc/rc{poziom_dzia/lania}.d. Jeli
twoj system uywa tej konwencji, to powinien by obecny plik README w
katalogu /etc/init.d wyjaniajcy, jak te skrypty dzialaj.
PLIKI
/etc/inittab
/etc/initscript
/dev/console
/var/run/utmp
/var/log/wtmp
/dev/initctl
UWAGI
Init zaklada, e procesy i ich procesy potomne pozostaj w tej samej
grupie procesow, ktora byla dla nich oryginalnie stworzona. Jeeli
jakikolwiek proces zmienil sw przynaleno do grupy procesow, init nie
moe ich zabi i moe skoczy si na tym, e zostan dwa procesy czytajce z
jednej linii terminala.
DIAGNOSTYKA
Jeli init zorientuje si, e wci powtarza namnaanie zadanego procesu
czciej ni 10 razy w cigu 2 minut, wtedy zaloy, e gdzie w wywolaniu
komendy jest bld, wyle wiadomo o bldzie na konsol systemu, i przerwie
pomnaanie danego pola do uplynicia 5 minut lub do odebrania sygnalu.
Zapobiega to "zjadaniu" zasobow systemu gdy kto popelni bld
typograficzny (bardziej po naszemu: "literowk" - przyp. tlum.) w pliku
/etc/inittab lub gdy program normalnie uruchamiany dla danego wpisu
jest usunity.
AUTOR
Miquel van Smoorenburg (miquels@cistron.nl), pierwsz wersj strony
podrcznika napisal Michael Haardt
(u31b3hs@pool.informatik.rwth-aachen.de).
PATRZ TAKE
getty(1), login(1), sh(1), runlevel(8), shutdown(8), kill(1),
inittab(5), initscript(5), utmp(5)
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.
19 lipca 2004 INIT(8)