RunlevelDurch Zusammenfassen verschiedener Dienste und Funktionen zu einem Runlevel kann einfach die Rolle und der Zustand eines Rechners definiert werden. (Beispiele: Runlevel 1 = Single User Modus, nur zur Administration durch den Systemverwalter, oder Einsatz als Mailserver ohne eigene Nutzerverwaltung etc.). Die Runlevel sind in der Datei /etc/inittab definiert.
Die einzelnen Definitionen unterscheiden sich also nur dadurch, welche
Dienste gestartet werden. Das Starten und Stoppen (beim Wechsel
des Runlevels ) wird durch eine Verkünpfung (Softlink) zum eigentlichem
Skript im Verzeichnis /etc/inid.d/rc[RUNLEVEL].d festgelegt. Die Skripten
selbst befinden sich im übergeordneten Verzeichnis init.d. Beispiel:
lrwxrwxrwx 1 root root 10 Nov 25 21:00 S05network -> ../network
Beim Starten werden alle Einträge mit S in der Reihenfolge der darauf folgenden Zahlen abgearbeitet. Beim Stoppen bzw. Verlassen eines Runlevels werden alle Einträge mit K (Kill) in Reihenfolge der darauf folgenden Zahlen abgearbeitet. Der Befehl init ruft Einträge mit "S" mit der Option start und Einträge mit "K" mit stop auf.
| S/K Start oder Stop |
Reihenfolge [00..99] |
Name des Skripts |
|---|---|---|
| S | 05 | network*1 |
| K | 10 | network*1 |
Ein Initskript sollte zumindest die Optionen start, stop und status verarbeiten. Ein Beispielskript das auch als Grundlage für eigene Initskripte verwendet werden kann ist bei Suse unter /etc/init.d/skeleton zu finden.
Optionen für die durch diese Skripte gesteuerten Dienste werden in den, den Dienstnamen tragenden Dateien unter /etc/sysconfig eingetragen. *2
*1 Dieser Eintrag im Verzeichnis rc3.d bedeutet: Beim Betreten dieses Runlevels wird das Script ../network als fünftes gestartet.
*2 ..und hier wird das Netzwerk gestoppt.
*3 Siehe auch kpresenter-Präentation