Generell passieren bei einem Wechsel des Runlevels zwei Dinge: Als Erstes werden die Stoppskripten des gegenwärtigen Runlevels ausgeführt — dabei werden typischerweise verschiedene, in diesem Level laufende Programme beendet. Als Zweites werden die Startskripten des neuen Runlevels ausgeführt. Während dieses Vorgangs werden in den meisten Fällen einige Programme gestartet. Um dies zu verdeutlichen, betrachten wir an einem Beispiel den Wechsel von Runlevel 3 nach Runlevel 5:
Der Administrator (root) teilt
dem init-Prozess mit, dass der Runlevel gewechselt werden soll, indem der
Befehl init 5 eingegeben wird.
init konsultiert die Konfigurationsdatei
/etc/inittab und stellt fest, dass das Skript
/etc/init.d/rc mit dem neuen Runlevel als Parameter
aufgerufen werden muss.
Nun ruft rc alle Stoppskripten des gegenwärtigen
Runlevels auf, für die im neuen Runlevel kein Startskript existiert. In
unserem Beispiel sind das alle Skripten, die sich im Verzeichnis
/etc/init.d/rc3.d befinden (der alte Runlevel war
3) und mit einem K beginnen. Die auf
das K folgende Zahl gewährleistet, dass hierbei eine
bestimmte Reihenfolge eingehalten wird, da unter Umständen manche Programme
von anderen abhängig sind.
Als Letztes werden die Startskripten des neuen Runlevels aufgerufen. Diese
liegen in unserem Beispiel unter /etc/init.d/rc5.d und
beginnen mit einem S. Auch hier wird mittels der oben
erwähnten Nummerierung eine bestimmte Startreihenfolge eingehalten.
Wenn Sie in denselben Runlevel wechseln, in dem Sie sich bereits befinden,
liest init nur die
/etc/inittab ein, prüft sie auf Veränderungen und nimmt
bei Bedarf die entsprechenden Maßnahmen vor, etwa das Starten eines
getty auf einer weiteren Schnittstelle.