KDE grafikus felület

Fejezet 1. Bevezetés

Ez a dokumentum a System V Init szerkesztő, más néven (ezután így hivatkozok rá) a ksysv leírását tartalmazza. Ebben a részben néhány, a programmal kapcsolatos alapfogalmat próbálok megmagyarázni.

A következő szöveget a tksysv-ből "kölcsönöztem" (mely programnak úgy is sokat köszönhet a ksysv):

1.1. A System V init rövid ismertetése

A System V init egy gyorsan terjedő eljárás a linuxos világban az operációs rendszer indításkori beállításának elvégzésére. Ez a népszerűség annak köszönhető, hogy egyszerűbb, hatékonyabb és rugalmasabb, mint a hagyományos BSD init folyamat.

Nem akarok belemerülni a történelmi részletekbe (már csak azért sem, mert nem ismerem :-).

A rendszerindító program az /sbin könyvtárban, és nem az /etc-ben található. Ez azért fontos, mert egy linuxos rendszert át lehet alakítani System V indításúvá újratelepítés és lemezformázás nélkül is. A Linux kernel először az /etc könyvtárban keresi az init programot, ezért onnan le kell törölni a régi verziót, ha létezik.

A SysV init abban is eltér a BSD init-től, hogy a konfigurációs fájlok az /etc könyvtár alkönyvtáraiban találhatók, nem pedig közvetlenül az /etc-ben. Ennek a könyvtárnak rc.d a neve. Ebben található egy rc.sysinit nevű fájl és a következő könyvtárak:

 init.d/
 rc0.d/
 rc1.d/
 rc2.d/
 rc3.d/
 rc4.d/
 rc5.d/
 rc6.d/

Az init.d könyvtárban különböző szkriptek találhatók. Általában külön szkript tartozik minden, a rendszerindításkor vagy egy futásszintre történő belépéskor indítható szolgáltatáshoz. A szolgáltatások közé tartozik a hálózatkezelés, az NFS, a sendmail, a httpd stb. Nem számítanak szolgáltatásnak az olyan programok, mint pl. a setserial, melyek egyszer lefutnak és utána rögtön ki is lép. Az ilyen jellegű programok az rc.local könyvtárba kerülhetnek.

Az rc.local könyvtár az /etc/rc.d könyvtárba kerül, ha létrejön egyáltalán. A legtöbb rendszer tartalmazza ezt, de kevés funkcióra használják. Létezhet még egy rc.serial könyvtár is az /etc/rc.d-ben, ha a rendszerindításkor be kell állítani a soros port paramétereit.

Induláskor a következő események játszódnak le:

Az alapértelmezett futásszint értéke az /etc/inittab fájlban található. A fájl eleje táján egy hasonló sornak kell szerepelnie:

 id:3:initdefault:

Az alapértelmezett futásszint a második oszlopban áll, jelen esetben ez 3, a legtöbb rendszerben ez az alapérték. Megváltoztatásához egy szövegszerkesztővel át kell írni a 3-at az /etc/inittab fájlban. Körültekintően módosítsa az inittab fájl tartalmát. Hibás adatok megadása esetén rendszerindításkor be lehet írni:

 LILO boot: linux single

Ebben az esetben a Linux egyfelhasználós módban indul és ki lehet javítani a hibás fájlt.

Honnan tudja a rendszer, hogy mely szkripteket kell futtatni? Az 'ls -l' parancsot kiadva az rc3.d könyvtárban, a következőt lehet például látni:

 lrwxrwxrwx 1 root root 13 13:11 S10network -> ../init.d/network 
 lrwxrwxrwx 1 root root 16 13:11 S30syslog -> ../init.d/syslog 
 lrwxrwxrwx 1 root root 14 13:32 S40cron -> ../init.d/cron
 lrwxrwxrwx 1 root root 14 13:11 S50inet -> ../init.d/inet
 lrwxrwxrwx 1 root root 13 13:11 S60nfs -> ../init.d/nfs
 lrwxrwxrwx 1 root root 15 13:11 S70nfsfs -> ../init.d/nfsfs
 lrwxrwxrwx 1 root root 18 13:11 S75keytable -> ../init.d/keytable
 lrwxrwxrwx 1 root root 23 13:11 S80sendmail -> ../init.d/sendmail.init
 lrwxrwxrwx 1 root root 18 13:11 S90lpd -> ../init.d/lpd.init
 lrwxrwxrwx 1 root root 11 13:11 S99local -> ../rc.local

Ahogy bizonyára Ön is észrevette, nincsenek "normális" fájlok a könyvtárban. Valamennyi bejegyzés szimbólikus link, melyek az init.d könyvtárban levő szkriptekre mutatnak. A linkek az S betűvel kezdődnek, mely után egy szám áll. Az S betű az elindításra, a K betű a leállításra utal. A számra csak a linkek sorbarendezése miatt van szükség. Az init a számsorrend alapján indítja el a szolgáltatásokat. Egy szám előfordulhat többször is, de csak zavarja az átláthatóságot. Elég tudni az S vagy K betű után a kétszámjegyű számot a kívánt szolgáltatás elindításához vagy leállításához.

Hogyan indulnak vagy állnak le a szolgáltatások? Nagyon egyszerűen. valamennyi szkript kezeli az első argumentumot, mely "start" vagy "stop" lehet. A szkripteket akár kézzel is el lehet indítani a megfelelő parancs kiadásával:

 /etc/rc.d/init.d/httpd.init stop

leállítja a httpd szolgáltatást. Ha a név a K betűvel kezdődik, akkor az init a "stop" argumentummal hívja meg a szkriptet, ha S betűvel, akkor a "start"-tal.

1.1.1. Mik azok a futásszintek?

Gyakran van szükség arra, hogy az operációs rendszert többféle üzemmódban lehessen használni. Lehet definiálni például egy "kiszolgáló" futásszintet a httpd, a sendmail, a hálózat használatához és egy "felhasználó" futásszintet, ha pl. az xdm és a hálózat futtatására van szükség.