• No se han encontrado resultados

id:runlevels:action:process

A mez˝oket lejjebb írjuk le. Ezen kívül a/etc/inittabtartalmazhat üres sorokat és#jellel kezd˝od˝oket, melyeket figyelmen kívül hagy.

id

Ez azonosítja a fájlon belüli sort. A getty soroknál ez adja meg a terminált, amelyen fut, pontosabban a

/dev/ttyutáni karaktereket az eszközfájl nevében. Más soroknál lényegtelen a tartalma (de nem lehet túl hosszú), és egyedinek kell lennie.

runlevels

A futási szintek, melyekre a sor vonatkozik. A szinteket egyetlen számként kell megadni, elválasztójel nélkül. (A futási szinteket a következ˝o alfejezet tárgyalja.)

action

Mit kell tenni a megadott sorral. Pl. ciklikusan végrehajtani (respawn), vagy csak egyszer futtatni (once).

process

A futtatandó parancs.

Egy getty-t indítani az els˝o virtuális terminálon (azaz a/dev/tty1-en) minden normális többfelhasználós futási szinten (2-5) a következ˝o módon lehet:

1:2345:respawn:/sbin/getty 9600 tty1

Az els˝o mez˝o azt jelzi, hogy ez a sor a/dev/tty1-re vonatkozik. A második mez˝o szerint ez a 2, 3, 4 és 5 futási szinteken érvényes. A harmadik mez˝o azt jelenti, hogy a parancsot újra futtatni kell, ha kilép (így újra be lehet jelentkezni az adott terminálon kilépés után). Az utolsó mez˝o az a parancs, amely futtatja a getty programot az els˝o virtuális terminálon.3

Ha terminálokat vagy betárcsázó modemvonalakat akarunk hozzáadni a rendszerhez, mindegyikhez egy-egy sort kell beleírni a/etc/inittabfájlba. A részleteket az init,inittabés getty kézikönyv oldalakon találhatjuk meg. Ha egy parancs induláskor máris hibával áll le, és az init úgy van beállítva, hogyújraindítsaezt, az sok

er˝oforrást köthet le: a program elindul, leáll, újraindul, újra leáll stb, a végtelenségig. Ez elleni védekezésként az init figyeli, hogy milyen gyakran indít újra egy parancsot, és ha ez átlép egy bizonyos gyakoriságot, öt percig késlelteti ennek újraindítását.

9.3. Futási szintek (run levels)

A futási szint (run level) az init és ezen keresztül az egész rendszer állapotjelz˝oje, ami meghatározza, mely szolgáltatások m˝uködnek. A futási szinteket számokkal azonosítjuk (9-1 Táblázat). Nincs egyetemes szabály a

felhasználói futási szintek (2-5) m˝uködésére. Néhány rendszeradminisztrátor a futási szinteket annak beállítására használja, hogy mely alrendszerek m˝uködjenek, pl. hogy fut-e az X, m˝uködik-e a hálózat stb. Mások mindig minden alrendszert elindítanak, és egyedileg állítják le vagy kapcsolják vissza ˝oket, a futási szint változtatása nélkül, mivel a futási szintek túl durvák rendszerük vezérlésére. Magadnak kell dönteni, melyiket választod, de egyszer˝ubb lehet azt az utat választani, amit a Linux terjesztésed felkínál.

Táblázat 9-1. Futási szintek

0 Rendszerleállítás (halt).

1 Egyfelhasználós mód (single-user mode) (speciális

rendszeradminisztrációhoz).

2-5 Normál m˝uködés (felhasználó által definiált).

6 Újraindítás (reboot).

A futási szinteket az/etc/inittabfájlban állíthatjuk be, például a következ˝o módon:

l2:2:wait:/etc/init.d/rc 2

Az els˝o mez˝o egy tetsz˝oleges címke; a második azt jelenti, hogy ez a sor csak a 2. futási szintre vonatkozik. A harmadik mez˝o azt jelenti, hogy az init-nek csak egyszer, a futási szintbe való belépéskor kell futtatni a negyedik mez˝oben megadott parancsot, és meg kell várni, hogy az befejez˝odjön. A megadott/etc/init.d/rcparancs bármilyen más parancsokat futtathat, melyek ahhoz szükségesek, hogy belépjünk a 2. futási szintre.

A negyedik mez˝o parancsa végez minden komoly munkát a futási szint beállításával kapcsolatban. Elindítja azokat a szolgáltatásokat, melyek még nem futnak, és leállítja azokat, melyeknek nem kell futniuk az új futási szinten. Az adott Linux terjesztést?l függ, hogy ezek pontosan milyen parancsokat takarnak, és hogyan állították be a futási szinteket.

Amikor az init elindul, keres az/etc/inittabfájlban egy olyan sort, mely az alapértelmezett futási szintet állítja be:

id:2:initdefault:

Az init beállítható úgy is, hogy induláskor ne az alapértelmezett futási szinten induljon el, ha a rendszermagnak

singlevagyemergencyparamétert adunk. A rendszermagnak parancssori argumentumok pl. a LILO-n keresztül adhatók át. Ezáltal egyfelhasználós üzemmódba kerülünk (1-es futási szint).

A rendszer futása közben a telinit paranccsal változtathatjuk meg a futási szintet. A futási szint megváltoztatásakor az init a megfelel˝o parancsokat lefuttatja az/etc/inittabalapján.

9.4. Speciális beállítások az

/etc/inittab

fájlban

Az/etc/inittabfájlnak van néhány különleges beállítási lehet˝osége, melyek segítségével az init különleges körülményekre is reagálni tud. Ezeket a harmadik mez˝oben speciális kulcsszavakkal jelöljük. Íme néhány példa:

powerwait

Lehet˝ové teszi, hogy az init áramkimaradás esetén is leállítsa a rendszert. Ez feltételezi egy UPS meglétét, valamint olyan szoftvert, amely figyeli az UPS-t és tájékoztatja az initet az áramszünetr˝ol.

Fejezet 9. init

ctrlaltdel

Lehet˝ové teszi, hogy az init újraindítsa a rendszert, amennyiben a felhasználó megnyomja a ctrl-alt-del billenty˝ukombinációt a konzolon. Megjegyezzük, hogy a rendszeradminisztrátor úgy is beállíthatja a

ctrl-alt-del-re való reagálást, hogy más történjen (vagy éppen ne történjék semmi, pl. egy bárki számára elérhet˝o konzol esetén); esetleg elindulhat ennek hatására a nethack.

sysinit

A rendszerindításkor futtatandó parancs. Ez általában a/tmpkitakarításával és hasonlókkal foglalkozik.

Ez a felsorolás nem teljes. Ainittabkézikönyv oldala leír minden lehet˝oséget, és részleteket a fentiek használatáról.

9.5. Rendszerindítás egyfelhasználós üzemmódban

Nagyon fontos futási szint az 1-es, melynek neve egyfelhasználós üzemmód (single user mode), amely esetén csak a rendszeradminisztrátor használja a gépet, és csak a lehet˝o legkevesebb szolgáltatás fut. Az egyfelhasználós üzemmód szükséges néhány adminisztratív feladathoz4, mint pl. az fsck futtatása az

/usrpartíción. Ez ugyanis a partíció lecsatolását igényli, ami csak a legtöbb rendszerszolgáltatás kikapcsolásával lehetséges.

Egy futó rendszer a telinit paranccsal állítható egyfelhasználós üzemmódba, azaz 1-es futási szintre.

Rendszerindításkor pedig a rendszermag parancssorába írhatjuk be asinglevagyemergencyszavakat, hogy ugyanezt elérjük. A rendszermag ezt ugyanis továbbadja az init-nek, ami ebb˝ol tudja, hogy nem az alapértelmezett futási szinten kell indulnia. (A rendszermag parancssorának bevitele a rendszerindítás módjától függ, pl. a LILO vagy a GRUB segítségével oldható meg egyszer˝uen.)

Egyfelhasználós módban való rendszerindítás néha szükséges lehet, pl. az fsck kézzel való futtatásához, miel˝ott bármi felcsatolódna. Ugyanis ha pl. az/usrpartíció komolyan megsérül, akkor minden további hozzáférés az ezen lév? fájlokhoz tovább szaporítja a hibák számát, így az ellen˝orzést az els˝o lehetséges alkalommal el kell végezni. Az init által lefuttatott rendszerindító szkriptek automatikusan egyfelhasználós üzemmódba lépnek be, ha az automatikus fsck súlyos hibát észlel. Ez védi a rendszert egy olyan fájlrendszer használatától, mely nem javítható automatikusan. Ez az eset viszonylag ritka, és általában fizikailag sérült merevlemeznél, vagy kísérleti

rendszermagnál fordul el˝o, de jó, ha felkészülünk rá.

Biztonsági okokból egy jól felépített rendszer megkérdezi a root jelszót a shell indítása el˝ott egyfelhasználós üzemmódban. Különben egyszer˝u lenne egy megfelel˝o sor beírásával a LILO-t arra utasítani, hogy root jogokkal indítsa el bárki a rendszert. Természetesen ez nem m˝uködik, ha a/etc/passwdfájlrendszer-hiba miatt megsérült; ekkor csak egy rendszerindító hajlékonylemez segíthet.

Megjegyzések

2. Pl. úgy, hogy a root felhasználó egy kill -HUP 1 parancsot ad ki.

3. A getty különféle verziói eltér˝o módon futnak, ennek érdemes utánanézni a megfelel˝o kézikönyv oldalon. 4. Nem alkalmas a nethack programmal való játszadozásra.

Documento similar