Chapter 7. init

Table of Contents
init jest pierwszy
Plik /etc/inittab
Poziomy pracy
Specjalna konfiguracja w /etc/inittab
Startowanie w trybie jednego użytkownika

"Uuno on numero yksi" (slogan serii fińskich filmów.)

Rozdział opisuje działanie procesu init, który jest jedynym programem uruchamianym automatycznie przez jądro i na którym ciąży wiele obowiązków.

init jest pierwszy

init jest niezbędny do działania Linuxa. Większość dystrybucji przychodzi z dobrze skonfigurowanym programem init, którym nie musisz się martwić. Zazwyczaj z initem spotkasz się chcąc utworzyć dodatkowe terminale, zmienić domyślny poziom pracy.

Jądro po wszelkich czynnościach związanych z własną inicjalizacją uruchamia program init. Dlatego init ma zawsze id = 1.

Linux szuka programu w kilku miejscach, jednak standardową lokacją jest /sbin/init. Jeżeli jądro nie znajdzie programu spróbuje uruchomić /bin/sh, jeżeli to również się nie uda system przestaje działać.

init uruchamia skrypty administracyjne odpowiedzialne za sprawdzenie i zamontowanie systemów plików, wyczyszczenie /tmp, uruchomienie demonów oraz getty na odpowiednich terminalach. (zobacz Chapter 8).

W czasie działania systemu init restartuje getty na terminalu, z którego użytkownik się wylogował. Program adoptuje wszelkie osierocone procesy (których rodzic umarł przed zakończeniem pracy potomka). Jest to bardzo ważne - proces bez potomka nie może istnieć, procesy muszą tworzyć składne drzewo. [1] Istnieje kilka odmian inita, większość dystrybucji Linuxa rozprowadzana jest z wersją opartą o sysvinit (napisany przez Miquela van Smoorenburga), który oryginalnie pojawił się w Systemie V. Istnieje również wersja BSD. Główna różnica polega na tym, że System V posiada poziomy pracy, których w BSD brakuje. Informacje odnoszą się do sysvinit.

Notes

[1]

Sam init nie umiera nigdy. Nie możesz go zabić sygnałem SIGKILL.