HTML 4.0; CSS Level 2; ISO-8859-2
Administracja systemu LINUX - podstawy.
Wstep
Przy robieniu opisów wspieralem sie manami i materialami dostepnymi w Internecie. Przyklady pochodza z mojego serka, który o dziwo dziala :-)). Wszystkie opisane konfiguracje odnosza sie do systemu Linux RedHat 6.1.
Start systemu
Start Linuxa zaczyna sie w chwili zaladowania jadra systemu. Jadro sprawdza urzadzenia, montuje system plików, a nastepnie uruchamia proces numer 1, który wywoluje program init. W tym momencie zaczyna sie ladowanie innych procesów w oparciu o pliki konfiguracyjne i skrypty znajdujace sie w katalogu /etc. Procesy uruchamiane sa w kolejnosci, która jest zapisana w pliku /etc/inittab oraz w skryptach inicjujacych znajdujacych sie w katalogu /etc/rc.d.
W inicie rozrózniamy rózne poziomy pracy (tzw. runlevels), z których kazdy moze miec swój zestaw procesów uruchamianych przy starcie. Istnieje siedem poziomów pracy:
0
Halt - zakonczenie pracy systemu, NIE USTAWIAJ tego jako initdefault.
1
Tryb jednego uzytkownika - uzywany w sytuacjach awaryjnych.
2
Tryb wielouzytkownikowy - podobny do 3, uzywany gdy nie korzystamy z sieci komputerowej.
3
Tryb wielouzytkownikowy - na tym poziomie pracuja systemy funkcjonujace jako serwery sieciowe.
4
Nieuzywany.
5
Tryb X11 - przy starcie systemu automatycznie ladowane jest srodowisko graficzne X11, jezeli tryb ten ustawiony jest jako initdefault.
6
Reboot systemu, NIE USTAWIAJ tego jako initdefault.
W pliku /etc/inittab znajduja sie linie zlozone z czterech pól:
id:poziom_pracy:akcja:proces
Linie zaczynajace sie od # traktowane sa jako komentarz.
id
Identyfikuje wpis, jest unikalna sekwencja 1-4 znaków (w starszych systemach moze byc ograniczone do dwóch znaków).
poziom_pracy
Podaje w którym poziomie pracy podjac podana akcje.
akcja
Opisuje jaka akcje nalezy podjac, mozliwe sa nastepujace akcje: initdefault Okresla poziom pracy, który powinien byc uruchomiony po bootowaniu. sysinit Proces zostanie wywolany podczas bootowania, przed wszelkimi wpisami boot czy bootwait. Pole poziomy pracy jest ignorowane. respawn Proces bedzie uruchomiony od nowa po kazdym jego zakonczeniu (np. getty). wait Proces bedzie uruchomiony raz (gdy nadejdzie wlasciwy poziom pracy), a init bedzie czekal na jego zakonczenie. once Proces bedzie wywolany raz po wejsciu we wlasciwy poziom pracy. boot Proces zostanie wywolany podczas bootowania. Pole poziomy pracy jest ignorowane. bootwait Proces zostanie wywolany podczas bootowania, podczas gdy init czeka na jego zakonczenie (np. /etc/rc). Pole poziomy pracy jest ignorowane. off Nie robi nic. powerwait Proces zostanie wywolany gdy init otrzyma sygnal SIGPWR, wskazujacy na problemy z zasilaniem. Init bedzie czekal na zakonczenie tego procesu przed dalsza kontynuacja. powerfail Podobne do powerwait, lecz init nie bedzie czekal na zakonczenie tego procesu. powerokwait Proces zostanie wywolany gdy init otrzyma sygnal SIGPWR, o ile istnieje plik o nazwie /etc/powerstatys, zawierajacy slowo OK. Znaczy to, ze zasilanie zostalo przywrócone. ctraltdel Proces zostanie wykonany, gdy init otrzyma sygnal SIGINT. Znaczy to, ze ktos na konsoli nacisnal kombinacje CTRL-ALT-DEL. Zazwyczaj wywoluje sie wtedy cos w rodzaju shutdown, zarówno w celu przejscia do poziomu jednouzytkownikowego, jak i do rebootowania komputera. ondemand Proces, który jest zaznaczony poziomem pracy ondemand bedzie wywolywany za kazdym razem, gdy zostanie wywolany wskazany poziom zadania. Mimo to jednak, nie nastapi zmiana poziomu pracy (poziomy pracy ondemand to 'a', 'b', 'c').
proces
Wskazuje proces, który nalezy uruchomic.
Przykladowy plik inittab:
# Poziom w którym system ma startowac
id:3:initdefault:
# Inicjalizuje system przed wszystkim innym.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Co ma robic przy CTRL-ALT-DELETE
# Parametry - poczytac man shutdown :-))
ca::ctrlaltdel:/sbin/shutdown -t3 -r -a +1
# Kiedy UPS zglasza brak zasilania, mamy 2 minuty czasu do shutdown-u.
# Wymaga zainstalowanego powerd i wlasciwie podlaczonego UPS-a
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# Gdy przywróca zasilanie przed wykonaniem shutdown, przerwij go.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Uruchom getty na standardowych poziomach pracy.
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
W katalogu /etc/rc.d/ miesci sie szereg podkatalogów o nazwach odpowiadajacym poszczególnym poziomom pracy. Znajduja sie tam dowiazania symboliczne do skryptów wywolujacych lub zatrzymujacych uslugi na danym poziomie pracy. Wszystkie skrypty zapisane sa w katalogu /etc/rc.d/init.d/.