Alle Dateien, die beim Hochfahren des Systems eine Rolle spielen, befinden sich im Verzeichnis /etc/rc.d. Hier ist eine Liste dieser Dateien:
$ ls /etc/rc.d init.d/ rc.local* rc0.d/ rc2.d/ rc4.d/ rc6.d/ rc* rc.sysinit* rc1.d/ rc3.d/ rc5.d/ |
Den Anfang bestimmt also die Datei rc.sysinit. Sie legt die grundlegende Konfiguration fest: Tastatur-Typ, Konfiguration einiger Geräte, Dateisystemprüfung usw.
Dann wird das rc-Skript gestartet, mit dem Runlevel als Argument. Wie gesehen, ist der Runlevel eine einfache Zahl. Für jeden definierten Runlevel <n> muss es ein entsprechendes Verzeichnis rc<n>.d geben. Eine typische Linux-Mandrake-Installation weist 6 definierte Runlevel auf:
0: Vollständiger Halt.
1: Single-User-Modus (engl. für ,,Ein-Benutzer-Modus``); für Notfälle oder Administrationsaufgaben.
2: Multi-User-Modus (engl. für ,,Mehr-Benutzer-Modus``) ohne Netzwerk.
3: Multi-User Modus mit Netzwerk.
4: Unbenutzt.
5: Wie 3, aber mit grafischer Benutzeroberfläche.
0: Neustart
Als Beispiel soll hier der Inhalt des Verzeichnisses /etc/rc.d/rc5.d dienen:
$ ls rc5.d K15postgresql@ K60atd@ S15netfs@ S60lpd@ S90xfs@ K20nfs@ K96pcmcia@ S20random@ S60nfs@ S99linuxconf@ K20rstatd@ S05apmd@ S30syslog@ S66yppasswdd@ S99local@ K20rusersd@ S10network@ S40crond@ S75keytable@ K20rwhod@ S11portmap@ S50inet@ S85gpm@ K30sendmail@ S12ypserv@ S55named@ S85httpd@ K35smb@ S13ypbind@ S55routed@ S85sound@ |
Wie Sie sehen, sind alle Dateien in diesem Verzeichnis symbolische Verweise und haben alle eine spezifische Form. Diese ist
<S|K><order><service_name> |
S steht Start, bzw. ,,starte den Dienst``; K für Kill, bzw. ,,stoppe den Dienst``. Die Skripte werden in der Reihenfolge ihrer Nummer und bei Nummerngleichheit in alphabetischer Reihenfolge aufgerufen. Weiterhin sehen Sie, dass jeder symbolische Verweis auf ein Skript in /etc/rc.d/init.d verweist (mit der Ausnahme von local). Diese Skripte sind jeweils für die Ausführung eines bestimmten Dienstes zuständig.
Wechselt das System in einen bestimmten Runlevel, führt es zuerst die entsprechenden K-Skripte aus, indem es die gelinkten Skripte mit dem Argument stop aufruft. Dann führt es auf die gleiche Weise die S-Skripte aus, mit dem Unterschied, dass das Argument nun start ist.
Sie sehen also, dass der Wechsel in den Runlevel 5 folgende Aktionen auslöst: zuerst läuft das Skript K15postgresql, d.h.
/etc/rc.d/init.d/postgresql stop |
dann K20nfs, gefolgt von K20rstatd usw. Anschließend werden die S-Skripte ausgeführt: S05ampd, d.h.
/etc/rc.d/init.d/apmd start |
usw.
Mit diesem Wissen ausgerüstet können Sie innerhalb weniger Minuten Ihren ganz persönlichen Runlevel kreieren oder das Starten, bzw. Stoppen eines Dienstes verhindern (durch das Löschen des symbolischen Verweises). Für diese Aufgabe stellt Linux auch Programme wie beispielsweise DrakXServices oder ntsysv bereit.
Zurück | Anfang | Vor |
Die Startdateien: ,,System V`` initialisieren | Hoch | Neue Kerne kompilieren und installieren |