Die zentrale Frage für den Systemverwalter, die sich aus der Darstellung der Startprozesse ergibt, ist die, wie und wo eingestellt werden kann
- auf welchen Terminalleitungen Getty-Prozesse laufen sollen,
- welche Daemon-Prozesse gestartet werden sollen.
Genauer formuliert könnte man die Frage umformulieren und vereinfachen, wo werden die Aktionen eingestellt, die der Init-Prozeß ausführen soll? Die Antwort ist auf den ersten Blick sehr einfach, in der Datei /etc/inittab.
Diese Datei ist sozusagen die Bauanleitung des Systems, hier steht genau erklärt, welche Aktionen der Init-Prozeß ausführen soll, wenn er beim Systemstart aufgerufen wird, und wie er sich im weiteren Verlauf verhalten soll. Diese Bauanleitung wäre aber sehr statisch, wenn es nur eine Form des Systemaufbaus geben würde. Das würde bedeuten, dass der Systemverwalter jedesmal, wenn er kurzfristig (etwa für Wartungsaufgaben) einen anderen Aufbau brauchen würde, diese Datei editieren müsste und dann das System neu starten sollte, damit der Init-Prozeß sich dann entsprechend verhält – für ein Serversystem eine unhaltbare Struktur!
Aus diesem Grund gibt es verschiedene sogenannte Runlevel, die jeweils eigene Einstellungen haben, welche Prozesse gestartet werden sollen. Ein Runlevel ist also eine Art Software-Konfiguration des Systems, die nur bestimmte Prozesse startet bzw. erlaubt. In der Datei /etc/inittab kann eingestellt werden, welche Prozesse in welchem Runlevel gestartet werden sollen. Der Init-Prozeß kennt acht Runlevels, 0-6 und S (oder s).
Die Runlevel 0, S und 6 haben eine reservierte Bedeutung. Runlevel 0 wird benutzt um das System anzuhalten, Runlevel 6 um es neu zu starten und Runlevel S ist der sogenannte Single-User-Modus. Dieser Modus wird vom Systemverwalter benutzt, um bestimmte Verwaltungsaufgaben zu erledigen, bei denen es zu Fehlern kommen könnte, wenn andere User im System eingeloggt wären.
Die restlichen Runlevel (1-5) sind frei verfügbar und nicht an bestimmte Bedeutungen gebunden. Als Beispiel für eine Aufteilung dieser Runlevel gebe ich hier die Einstellung von SuSE-Linux wieder:
- Multi-User ohne Netzwerk
- Multi-User mit Netzwerk
- Multi-User mit Netzwerk und XDM (Graphischer Login)
- frei
- frei
Welcher Runlevel beim Systemstart automatisch benutzt wird, ist auch in der Datei /etc/inittab eingestellt, der Eintrag initdefault legt ihn fest.
Während des laufenden Betriebs kann der Systemverwalter den Runlevel wechseln, indem er den Befehl init eingibt, mit dem Runlevel als Parameter. So würde z.B. der Befehl
init 1
in den Runlevel 1 wechseln.