KSysV kézikönyv
Vissza |  | Tovább

# 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:

- a kernel több könyvtárban keresi az init programot, majd elindítja az első megtalált példányt

- az init program elindítja az `/etc/rc.d/rc.sysinit` programot

- az `rc.sysinit` különféle műveletek elvégzése után futtatja az `rc.serial` programot (ha az létezik)

- az init végrehajtja az `rc.local` szkriptet

- az init végrehajtja az alapértelmezett futásszint összes szkriptjét

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.

Vissza | Tartalom | Tovább
KSysV kézikönyv |  | A program képernyőjének felépítése