A InfoWiki wikiből
Tartalomjegyzék |
Debian LINUX
A DEBIAN linux bootoláskor az init programot futtatja le, melynek konfigurációs beállításai az /etc/inittab file-ban találhatóak.
A linux úgynevezett futási szintekben (runlevel) gondolkodik. Minden futási szinthez futtatandó programok és szolgáltatások listája tartozik. A debian mivel elsősorban szerverként szokott üzemelni, a 2-es futási szintre lép fel bootolás után (konzolos többfelhasználós üzemmód). Más, desktop célú linux-ok ezzel ellentétben a 5-os futási szintre lépnek (X-Window felület).
Többek között ezen alapértelmezett futási szintet (default runlevel) is az inittab file írja le.
Első lépésben tehát az init program beolvassa az /etc/inittab konfigurációs file-t, és alkalmazza a beállításokat. Ezen konfigurációs beállítások szerint (általában) az első lépés az /etc/init.d/rcS szkript futtatása (kivéve ha -b paraméterrel bootoltatjuk a linux-t (emergency mode)).
Az rcS szkript szemtelen módon nem sok mindent csinál, mindössze elindítja az /etc/init.d/rc szkriptet S paraméterrel (ezzel felkérve hogy az /etc/rcS.d alkönyvtárban található összes szkriptet név szerinti sorrendben futtassa le.
Az /etc/rcS.d szkriptjei a mountolást, modulok betöltését, hálózati szolgáltatásokat indítanak, az órát állítják be, stb. Kompatibilitási okokból az /etc/rc.boot könyvtár tartalmát is futtatja (de ez már elavult dolog, ha valaki oda pakol be szkripteket).
Az rcS-beli szkriptek futtatása után lefutnak az /etc/rc2.d könyvtárbeli szkriptek (feltéve ha 2 a beállított alapértelmezett futtatási szint). Ezzel a bootolási folyamat be is fejeződik.
init helyett upstart
Egyes (újabb) linux-ok, mint az Ubuntu is, nem az init programot használja bootoláskor, hanem az upstart-ot. Ez képes indítási szkripteket párhuzamosan is futtatni, és egyéb fejlesztéseket is tartalmaz.
Futási szintek
- 0: leállás. Ha egy linux erre a futási szintre lép, akkor leáll, gép kikapcsolható.
- 1: egyfelhasználós üzemmód, konzolos felületen.
- 2: többfelhasználós üzemmód, konzolos felületen.
- 3,4: többfelhasználós üzemmód, konzolos felületen, de különbözhet az indított szolgáltatások listája a 2-estől
- 5: X-Window felület (egyes esetekben)
- 6: újraindítás
Valójában csak a 0,1,6 szintek jelentése tekinthető valamennyire szabványosnak. Egyáltalán nem igaz pl, hogy az 5 szint az X-Window felület szintje. Mindössze az X-Window felület indítását az 5-ös szintre teszik leggyakrabban.
A BOOT eljárás működése
- init program beolvassa az /etc/inittab konfigurációs filet
- init beállítja az alapértelmezett futtatási szintet
- /etc/rcS.d-beli szkriptek lefutnak
- /etc/rc2.d-beli szkriptek lefutnak (ha a 2 az alapértelmezett szint)
Szkriptek belülről
Egy ilyen, bootoláskor használt szkript képes kezelni az alábbi paramétereket:
- start: indítási kérelem
- stop: leállítási kérelem
- restart: újraindítási kérelem
- reload: a konfigurációs file újraolvasása után restart
- force-reload: reload ha lehet, ha nem akkor restart
Valójában egy ilyen szkript van a lemezen. Pl az apache szerver inditására az /etc/init.d/apache2 szkript végzi. Az /etc/rc2.d alkönyvtárba nem másolódik át ez a szkript, csak egy link készül, mely erre az eredeti apache kezelő szkriptre mutat. Ezen link vagy 'K' vagy 'S' első betűvel rendelkezik, és egy két számjegyű sorszámmal folytatódik, majd a csomag nevével. Jelen esetben pl. K09apache2 formában.
Szkript sorrend
Egy /etc/rcN.d alkönyvtár (ahol N=0,1,..,6,S) sok szkript-filet tartalmazhat, melyeket az adott futási szintre lépéskor kell végrehajtani valamilyen sorrendben. A szkript file-ok egymáshoz viszonyított sorrendjét a név szerinti rendezés adja meg.
A szkriptek nevei vagy 'S' vagy 'K' karakterrel kezdődnek. Az 'S'=start, 'K'=kill szavakból erednek. Az 'S' szkriptek valamit indítanak, a 'K' szkriptek valamit leállítanak. Ez nem azért van így, mert vannak leállító és indító szkriptek, hanem ezek a betűk definiálják milyen paramétert kell nekik átadni.
Amikor változik a futási szint, akkor először a szóban forgó új futási szint alkönyvtáraiban található 'K' szkriptek hajtódnak végre - leállítják azokat a programokat, amelyek az adott futási szinten nem futhatnak. A 'K' szkriptek paramétereként a stop adódik át. Aztán az 'S'-es szkriptek hajtódnak végre, start parancssori paraméterrel.
A 0 és 6 futási szintek esetén az 'S'-es szkriptek is stop paraméterrel hívódnak meg.