.


[*]
[*]
[*]

[*]
index


A rendszerlezárás közelebbről

Fontos, hogy kövessük a rendszerlezárás helyes módját, ha leállítunk egy Linux rendszert. Ha nem tesszük meg, a fájlrendszerek sérülhetnek, mivel a Linux csak időnként hozza szinkronba a lemez cache és a lemez tényleges tartalmát. Ez ugyan nagyon megjavítja a rendszer teljesítményét működés közben, de azt is jelenti, hogy egy rossz rendszerleállás (pl. hirtelen lekapcsoljuk a főkapcsolót) adatvesztést és rendszersérülést okozhat.          

Egy másik ok az egyszerű kikapcsolás ellen, hogy egy többfeladatos (multitaskig) rendszerben sok processz mehet a háttérben, és ezekre az áram lekapcsolása szörnyű hatással lehet. A megfelelő rendszerlezárási (shutdown) eljárás esetén ezek el tudják menteni adataikat, nem csak meghalnak egy pillanat alatt.  

A Linux rendszerekben a shutdown  parancs végzi a helyes rendszerlezárást. Általában két módon szokás használni.  

Ha olyan rendszert futtatsz, ahol te vagy az egyetlen felhasználó, a shutdown  használatának szokásos módja az, hogy kilépsz minden futó progrmaból, kijelentkezel minden virtuális konzolról, valahol bejelentkezel root-ként, majd kiadod a shutdown -h now  parancsot. Itt a now azt jelenti, hogy a rendszerleállás azonnali. (Egy felhasználó esetén ez így rendben van.)

Ezzel szemben, ha a rendszeren több felhasználó is van, a shutdown -h +time message használata célszerű, ahol time az az idő percekben mérve, amennyi múlva a rendszer leáll, a message pedig egy üzenet, amely a leállás okát magyarázza. Nézzük a következő példát:

# shutdown -h +10 'Új lemezt installálunk. A rendszer 3 óra múlva
> indul újra.'
#
Ez mindenkit figylemeztet, hogy 10 perc múlva leáll a rendszer, és még az üzenetet is megkapják a felhasználók minden terminálon, melyen valaki bejelentkezett, és minden xterm  ablakban is:
Broadcast message from root (ttyp0) Wed Aug  2 01:03:25 1995... 

Új lemezt installálunk. A rendszer 3 óra múlva indul újra.
The system is going DOWN for system halt in 10 minutes !!

A figyelmeztetés automatikusan megismétlődik a leállás előtt néhányszor, egyre gyakrabban, ahogy annak ideje közeledik.  

Amikor a rendszerleállás ténylegesen elindul, a gyökér kivételével minden fájlrendszer lecsatolódik, a felhasználók processzeit (ha még létezik olyan) megszakítja a rendszer, a démonok leállnak, minden fájlrendszer lecsatolódik, és általában minden leáll. Amikor ez kész van, az init  kiír egy üzenetet, hogy most már lekapcsolható a számítógép. Ekkor, és csakis ekkor szabad a kapcsoló után nyúlni.

Néha még jól karbantartott rendszerekkel is megesik, hogy nem lehet megfelelően leállítani a rendszert. Például ha a kernel pánikol, vagy valahogy rosszul viselkedik, lehetetlen további parancsokat kiadni, így a rendszerleállási folyamat sem fog lefutni. Ekkor csak reménykedni lehet, hogy semmi sem sérül komolyan, majd lekapcsolni az áramot. Ha a probléma nem ennyire súlyos (pl. valaki egy fejszével szétverte a billentyűzetet), és a kernel, valamint az update  rendesen fut, érdemes várni pár percet, hogy a cache puffer és a lemez tartalma szinkronba kerülhessen, majd azután lekapcsolni az áramot.          

Néhány ember a rendszerleállást a sync  paranccsal szereti elvégezni, amely a cache puffert kiírja a lemezre. Az általános elgondolás az, hogy háromszor kiadva a sync -et, majd megvárva, hogy minden lemezművelet befejeződjön, biztonsággal lekapcsolható a számítógép. Ha nincsenek futó programok, ez majdnem egyenértékű a shutdown -nal. Igaz, ekkor a fájlrendszerek nem lesznek lecsatolva, ami problémát okozhat az ext2 rendszer ''clean filesystem'' bitjénél. Ezen kívül az esetleges elfelejtett felhasználók és processzek sem tudnak szépen kilépni. Ezért a ''tripla sync'' módszer nem ajánlott.  

(Ha érdekel: annak oka, hogy háromszor kell kiadni a sync-et az, hogy a korai UNIX rendszerek esetében a parancs háromszori begépelése általában elegendő időt adott a lemeznek a műveletek befejezésére.)

[*]
Linux rendszeradminisztrátorok kézikönyve (első javított változat; SAG-HU 0.6b1)