Generell passieren bei einem Wechsel des Runlevels folgende Dinge: Die Stopp-Skripten des gegenwärtigen Runlevels werden ausgeführt — dabei werden typischerweise verschiedene, in diesem Level laufende Programme beendet — und die Start-Skripten des neuen Runlevels werden ausgeführt. Während eines solchen 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. In diesem Fall erreicht er dies durch Eingabe von init 5.
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 Stopp-Skripten des gegenwärtigen Runlevels auf, für die im neuen Runlevel kein Start-Skript 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 nach dem K folgende Zahl gewährleistet, dass hierbei eine bestimmte Reihenfolge eingehalten wird, da unter Umständen manche Programme von anderen abhängig sind.
![]() | Wichtig |
|---|---|
Die Namen der Stopp-Skripten beginnen immer mit K (engl. kill), die der Start-Skripten mit S (engl. start). | |
Als Letztes werden die Start-Skripten des neuen Runlevels aufgerufen; diese liegen in unserem Beispiel unter /etc/init.d/rc5.d und beginnen mit einem S. Auch hierbei wird eine bestimmte Reihenfolge eingehalten, die durch die dem S folgende Zahl festgelegt ist.
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.