Runlevel
Was ist ein Runlevel?
Ein Runlevel ist ein Betriebszustand auf einem Unix- und Unix-basierten Betriebssystem, der auf dem Linux-basierten System voreingestellt ist. Runlevel sind von null bis sechs durchnummeriert und spielen bei Betrieb, Wartung und Verwaltung von Linux- und Unix-Systemen mehrere wichtige Rollen.
Ein Runlevel ist ein voreingestellter Betriebszustand in einem Unix- oder Linux-basierten Betriebssystem, der als eine einzelne ganze Zahl definiert ist, die von null bis sechs reichen kann. In diesen Systemen bestimmen die Runlevel, welche Programme nach dem Hochfahren des Betriebssystems ausgeführt werden können. Jeder Runlevel definiert den Zustand des Rechners nach dem Booten, bezeichnet eine bestimmte Systemkonfiguration und legt fest, welche Dienste auf dem Rechner laufen, nachdem das Betriebssystem hochgefahren ist und läuft.
Runlevel spielen auch bei der Verwaltung von Unix- und Linux-Systemen eine wichtige Rolle. Im Allgemeinen können Systemadministratoren (Sys-Admins) Runlevel verwenden, um herauszufinden, welche Subsysteme laufen, arbeiten und nicht arbeiten. Insbesondere Runlevel 1 wird für die Systemwartung und -reparatur verwendet. Die Runlevel 3 und 5 werden verwendet, um das System im Mehrbenutzermodus mit Netzwerkbetrieb laufen zu lassen – und zu überprüfen, ob es in diesem Modus ordnungsgemäß läuft – und die Runlevel 0 und 6 werden verwendet, um das System herunterzufahren, beziehungsweise neu zu starten.
Wie viele Runlevel gibt es?
Unter Unix und Linux gibt es sieben Runlevel, die von null bis sechs durchnummeriert sind. Jedes Grundlevel hat einen anderen Zweck. Die Runlevel 1 bis 6 sind im Allgemeinen für den Einzelbenutzermodus, den Mehrbenutzermodus mit und ohne gestartete Netzwerkdienste, das Herunterfahren des Systems und den Neustart des Systems zuständig. Die Einrichtung dieser Konfigurationen unterscheidet sich zwischen verschiedenen Linux-Distributionen und Unix-Versionen.
Die Runlevel 0, 1 und 6 sind immer gleich. Die Runlevel 2, 3, 4 und 5 sind je nach verwendeter Linux-Distribution unterschiedlich. Beim Hochfahren des Systems wird nur ein Runlevel ausgeführt. Die Runlevel werden nicht sequenziell ausgeführt. Zum Beispiel wird entweder Runlevel 4, 5 oder 6 ausgeführt, nicht erst 4, dann 5, dann 6. Die Runlevel 3 und 5 sind ähnlich, mit einem entscheidenden Unterschied: Runlevel 5 unterstützt eine grafische Benutzeroberfläche (GUI), Runlevel 3 dagegen nicht.
Darüber hinaus hat jeder Runlevel sein eigenes systemd-Target. Runlevels beziehen sich auf bestimmte systemd-Targets. systemd-Targets sind Methoden zum Starten von Linux-basierten Systemen. Sie sind ausgeschriebene Befehle, die sich von einem Runlevel-Befehl unterscheiden, der nur aus einer Zahl besteht.
Der Zweck und das systemd-Ziel für die sieben Runlevel werden in dieser Tabelle beschrieben.
Bedeutung der Runlevel
Der Runlevel des Systems kann anzeigen, ob sein Netzwerk betriebsbereit ist. Außerdem kann das Booten eines Systems in verschiedenen Runlevel Systemadministratoren helfen, Lösungen für bestimmte Probleme zu finden. Das Booten des Systems in Runlevel 1 (Einzelbenutzermodus) kann beispielsweise Probleme beseitigen, wie das Versagen des Systemstarts aufgrund einer beschädigten Konfigurationsdatei oder die Blockierung der Anmeldung eines autorisierten Benutzers am System aufgrund einer beschädigten /etc/passwd-Datei oder eines vergessenen Passworts. Insgesamt ermöglichen Runlevel Systemadministratoren eine bessere Kontrolle des Systemverhaltens und die Behebung von Problemen aufgrund unerwünschter Verhaltensweisen.
Festlegen und Auffinden des System-Runlevels
Systemadministratoren legen den Standard-Runlevel eines Systems nach ihren Bedürfnissen fest. Bei den meisten Linux- und Unix-Systemen wird das System automatisch mit Runlevel 3 oder 5 gebootet, wenn der Administrator den Standard-Runlevel nicht festlegt.
In diesen Systemen initialisiert der Befehl init verschiedene Prozesse. Zu diesem Zweck ermittelt er den Standard-Runlevel des Systems und führt die diesem Runlevel entsprechenden Startskripte aus. Diese Skripte können dazu dienen, das Netzwerk zu starten, die Systemhardware zu initialisieren und so weiter. Die Benutzer können auch die voreingestellten Runlevel ändern oder bei Bedarf neue erstellen. Allerdings sollten diese Benutzer über fundierte Kenntnisse und Erfahrungen in der Linux-Systemverwaltung verfügen. Andernfalls kann es zu Problemen beim Systemstart oder beim Betrieb kommen.
Die Startskripte für die einzelnen Runlevel sind unterschiedlich und befinden sich im jeweiligen rc-Unterverzeichnis unter etc/rc.d. Diese Unterverzeichnisse heißen rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d und rc6.d. Das Startskript für Runlevel 1 befindet sich also in /etc/rc.d/rc1.de, für Runlevel 2 /etc/rc.d/rc2.d und so weiter.
Administratoren verwenden auch den Befehl runlevel, um den aktuellen Runlevel des Rechners zu ermitteln und ein System zu beurteilen. Verwenden Sie den Runlevel-Befehl /sbin/runlevel, um den aktuellen und den vorherigen Runlevel eines Betriebssystems zu ermitteln. Eine andere Möglichkeit, den Runlevel anzuzeigen, ist der who-Befehl: who -r.
Änderung des System-Runlevels
Der System-Runlevel kann mit dem init-Befehl geändert werden. Um also den Mehrbenutzermodus mit Netzwerkbetrieb zu starten, muss der Runlevel 3 sein. Wenn sich das System noch nicht in diesem Runlevel befindet, kann er mit dem folgenden Befehl geändert werden: sudo init 3.
Normalerweise muss das System nicht neu gestartet werden, um zwischen den Runlevels zu wechseln. Um das System jedoch im GUI-Modus (Runlevel 5) zu betreiben, kann ein Neustart zusammen mit der Installation von GUI-Paketen erforderlich sein.