Ablauf beim Booten Linux Systemadministration Die Runlevel Inhalt Index


init

init ist der wichtigste Prozess überhaupt im System. Stirbt er, ist auch Linux hinüber (was im Vergleich zu anderen Betriebssystemen eher selten der Fall ist). init kann auch nicht gekillt werden, nicht einmal durch das sonst tödliche Signal 9!

Was nun init zu tun hat, bestimmt im Wesentlichen die Datei /etc/inittab.

Eine Zeile hat die Form:

<id>:<Runlevel>:<Aktion>:<Prozess>


id Ein Bezeichner für einen Einsprungspunkt. Solch eine ID muss einmalig sein.
Runlevel Ein Runlevel ist eine Software-Konfiguration, in der das System gestartet werden kann. Hier stehen die Bezeichner der Runlevel, für die eine solche Zeile gültig ist. Mehr dazu im nächsten Abschnitt.
Aktion Ein Schlüsselwort, das angibt, wie die Zeile zu interpretieren ist.
Prozess Falls dieser Eintrag existiert, wird der angeführte Prozess gestartet.

Betrachten wir nun Beispieldateien für RedHat-basierende und SuSE-Systeme:

SuSE RedHat
id:2:initdefault:

Diese Zeile bestimmt das Runlevel (hier 2), in welchem Linux nach dem Booten zu starten ist.  Fehlt eine solche Zeile, fordert Linux während des Starts zur Eingabe desselben auf. init sucht als erstes immer nach einer solchen Zeile!

si:I:bootwait:/sbin/init.d/boot

Obiger Eintrag besagt, dass das angegebene Skript /sbin/init.d/boot während des Bootvorganges zu starten ist und init auf dessen Beendigung warten muss (bootwait). Das Runlevel-Feld wird ignoriert.

si::sysinit:/etc/rc.d/rc.sysinit

Das Skript wird auf jeden Fall vor Skripten ausgeführt, deren drittes Feld boot oder bootwait enthalten. Das Runlevel-Feld wird ignoriert.

Bei Wechsel eines Runlevels ist das Skript /sbin/init.d/rc auszuführen, die Runlevel 4, 5 sind nicht belegt.

l0:0:wait:/sbin/init.d/rc 0
l1:1:wait:/sbin/init.d/rc 1
l2:2:wait:/sbin/init.d/rc 2
l3:3:wait:/sbin/init.d/rc 3
#l4:4:wait:/sbin/init.d/rc 4
#l5:5:wait:/sbin/init.d/rc 5
l6:6:wait:/sbin/init.d/rc 6 
ls:S:wait:/sbin/init.d/rc S

Bei RedHat werden 6 Runlevel spezifiziert. Bei Wechsel zwischen diesen wird das Skript /etc/rc.d/rc aufgerufen.

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
1:123:respawn:/sbin/mingetty --noclear tty1
2:123:respawn:/sbin/mingetty tty2
3:123:respawn:/sbin/mingetty tty3
4:123:respawn:/sbin/mingetty tty4
5:123:respawn:/sbin/mingetty tty5
6:123:respawn:/sbin/mingetty tty6
1:2345:respawn:/sbin/mingetty tty1      
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

Die Bedeutung der Einträge solcher Zeilen sind bei SuSE und RedHat identisch. Die erste Spalte gibt die Nummer des Terminals an, 1 betrifft Terminal tty1,... In der zweiten Spalte stehen die Runlevel, für die die Zeile gilt (wie leicht zu erkennen ist, ist die Belegung dieser bei RedHat und SuSE verschieden). respawn bewirkt, dass nach Beendigung des Prozesses aus Spalte 4 dieser sofort wieder neu zu starten ist (nach dem logout erscheint sofort der Login-Bildschirm).

ca::ctrlaltdel:/sbin/shutdown -r -t 4 now

Eine solche Zeile erlaubt dem "normalen Nutzer" mit Hilfe von [Ctrl][Alt][Del] das System herunterzufahren.


Ablauf beim Booten Linux Systemadministration Die Runlevel Inhalt Index