Ein Runlevel ist ein vordefinierter Betriebszustand eines UNIX- oder Linux-Systems, der bestimmt, welche Dienste und Prozesse nach dem Booten verfรผgbar sind.

Was ist ein Runlevel?
Ein Runlevel ist ein Konzept in UNIX und Linux Betriebssysteme definiert einen bestimmten Zustand der Maschine, indem es festlegt, welche Prozesse, Dienste und Systemressourcen aktiv sind. Es fungiert als Rahmen fรผr die Steuerung des Startens und Herunterfahrens des Systems und ermรถglicht Administratoren um die Umgebung entsprechend den betrieblichen Anforderungen zu verwalten. Jeder Runlevel entspricht einem bestimmten Modus, z. B. Systemwartung, textbasierter Mehrbenutzerbetrieb oder Verfรผgbarkeit einer vollstรคndigen grafischen Benutzeroberflรคche.
Beim Systemstart wird ein in der Konfiguration definierter Standard-Runlevel aktiviert. Der Init-Prozess stellt sicher, dass die richtigen Dienste basierend auf diesem Level gestartet oder gestoppt werden. Durch รndern des Runlevels kรถnnen Administratoren das System schnell an verschiedene Aufgaben anpassen, z. B. an die Fehlerbehebung im Einzelbenutzermodus, den Betrieb ohne Netzwerk aus Sicherheitsgrรผnden oder die Aktivierung vollstรคndig vernetzter und grafischer Dienste fรผr den regulรคren Gebrauch. Dieser Mechanismus bietet eine standardisierte und effiziente Mรถglichkeit, das Systemverhalten zu verwalten, ohne dass fรผr jeden einzelnen Dienst ein manueller Eingriff erforderlich ist.
Verschiedene Linux-Runlevel
Hier ist eine strukturierte Tabelle der traditionellen Linux SysV-Runlevel und ihrer Zwecke:
| Runlevel | Beschreibung | Typischer Anwendungsfall |
| 0 | Halt (Herunterfahren) | Schaltet das System sicher aus. |
| 1 | Einzelbenutzermodus | Wartungs- oder Notbetrieb mit Root-Zugriff nur, kein Networking. |
| 2 | Mehrbenutzermodus ohne Netzwerk | Ermรถglicht die Anmeldung mehrerer Benutzer, deaktiviert jedoch Netzwerkdienste (variiert je nach Distribution). |
| 3 | Vollstรคndiger Mehrbenutzermodus mit Netzwerk | Standardmรครiger textbasierter, nicht grafischer Modus mit allen aktivierten Diensten und Netzwerken. |
| 4 | Undefiniert / benutzerdefinierbar | Wird selten verwendet; fรผr benutzerdefinierte Konfiguration verfรผgbar. |
| 5 | Mehrbenutzermodus mit Netzwerk und GUI | Startet in eine grafische Desktopumgebung mit vollstรคndiger Netzwerkverbindung. |
| 6 | rebooten | Startet das System sicher neu. |
Wofรผr wird Runlevel verwendet?
Runlevels werden verwendet, um den Betriebszustand eines Linux oder UNIX-System, indem sie definieren, welche Dienste, Prozesse und Systemressourcen zu einem bestimmten Zeitpunkt aktiv sein sollen. Sie ermรถglichen Administratoren die Verwaltung des Systemverhaltens beim Starten, Herunterfahren oder beim รbergang zwischen verschiedenen Betriebsmodi.
Beispielsweise kann ein System zur Fehlerbehebung in den Einzelbenutzermodus versetzt werden, fรผr normale server Operationen oder das Booten in eine grafische Oberflรคche fรผr den Desktop. Durch das Festlegen oder รndern des Runlevels kรถnnen Administratoren schnell Dienstgruppen aktivieren oder deaktivieren, Systemressourcen sparen, Wartungsaufgaben durchfรผhren oder sicherstellen, dass der Rechner in der fรผr seine Funktion am besten geeigneten Konfiguration lรคuft. Dieser strukturierte Ansatz trรคgt dazu bei, Konsistenz, Sicherheit und Effizienz in verschiedenen Umgebungen zu gewรคhrleisten.
Wie รผberprรผfe ich den Runlevel?
Sie kรถnnen den aktuellen Runlevel auf einem Linux-System mithilfe von Befehlen รผberprรผfen, die den Betriebszustand des Systems melden. Auf herkรถmmlichen Sysvinit Systeme zeigt der Befehl โrunlevelโ die vorherigen und aktuellen Runlevel an, wรคhrend der Befehl โwho -rโ den aktuellen Runlevel detaillierter anzeigt.
Auf modernen systemd-basiert Distributionen, die Runlevels durch Ziele, der entsprechende Befehl ist systemctl get-default, um das Standardziel anzuzeigen, und systemctl isolate um zu einem anderen zu wechseln. Darรผber hinaus liefert systemctl list-units --type=target Informationen zu aktiven Zielen, die Runleveln wie multi-user.target oder graphical.target zugeordnet sind.
Wie รคndere ich den Runlevel in Linux?

Das รndern des Runlevels in Linux hรคngt davon ab, ob das System die รคltere Sysvinit Rahmen oder die moderne systemd init-System.
SysVinit-basierte Systeme
Der Runlevel kann vorรผbergehend mit dem Befehl init oder telinit gefolgt von der Runlevel-Nummer geรคndert werden. Beispielsweise schaltet init 3 das System in den Mehrbenutzermodus ohne grafische Oberflรคche, wรคhrend init 5 die grafische Desktop-Umgebung startet. Um die รnderung dauerhaft zu machen, muss der Standard-Runlevel in der Datei /etc/inittab geรคndert werden. Dort liest das System, welcher Runlevel Stiefel standardmรครig in.
Systemd-basierte Systeme
Runlevels werden ersetzt durch ZieleUm vorรผbergehend zu einem anderen Ziel zu wechseln, verwenden Sie systemctl isolate , z. B. systemctl isolate multi-user.target, um in den Textmodus zu wechseln, oder systemctl isolate graphical.target, um die GUI zu starten. Um die Standardeinstellung fรผr zukรผnftige Bootvorgรคnge zu รคndern, fรผhren Sie systemctl set-default aus. , wodurch der symbolische Link fรผr das Standardsystemziel aktualisiert wird.
Warum ist das Runlevel wichtig?
Hier ist eine Liste von Grรผnden, warum Runlevel in Linux- und Unix-Systemen wichtig sind:
- Systemkontrolle. Runlevel definieren, welche Dienste und Prozesse ausgefรผhrt werden sollen, und geben Administratoren eine prรคzise Kontrolle รผber den Betriebszustand des Systems.
- FlexibilitรคtSie ermรถglichen einen schnellen Wechsel zwischen verschiedenen Modi, beispielsweise dem Einzelbenutzermodus fรผr die Wartung oder dem grafischen Modus fรผr die Desktop-Nutzung.
- Problemlรถsung. Administratoren kรถnnen in minimale Umgebungen (wie Runlevel 1) booten, um Konfigurationsfehler zu beheben oder Fehler zu beheben.
- Resourcenmanagement. Durch die Deaktivierung unnรถtiger Dienste in bestimmten Runlevels kann das System CPU, Erinnerung, und Macht.
- SicherheitNiedrigere Runlevel kรถnnen den Zugriff auf Benutzer und Dienste einschrรคnken, was nรผtzlich ist, wenn das System wรคhrend Wartungsarbeiten oder bei Verdacht auf Kompromittierung isoliert wird.
- KonsistenzSie bieten eine standardisierte Struktur fรผr Systemzustรคnde รผber verschiedene Unix-รคhnliche Systeme hinweg und vereinfachen so die Verwaltung.
- Automation. Scripts und an Runlevels gebundene Konfigurationen optimieren das Starten, Herunterfahren und die รbergรคnge und reduzieren so die manuelle Arbeit.
Runlevel-Probleme
Hier ist eine รbersicht รผber hรคufige Runlevel-Probleme und deren Bedeutung:
- Falsch konfigurierter Standard-Runlevel. Wenn der Standard-Runlevel (oder das systemd-Ziel) des Systems falsch eingestellt ist, kann es passieren, dass die Maschine in einen unerwรผnschten Zustand bootet, wie etwa in den Grafikmodus auf einem server, oder ein nicht vernetzter Modus auf einer Workstation, was zu Ressourcenverschwendung oder eingeschrรคnkter Nutzbarkeit fรผhrt.
- Fehler beim Laden kritischer Dienste. Bei einem bestimmten Runlevel Dรคmonen Es wird erwartet, dass sie automatisch starten. Wenn Konfigurationsfehler den Start verhindern, fehlen dem System mรถglicherweise Netzwerk-, Anzeige- oder sogar wichtige Anmeldefunktionen, wodurch es teilweise oder vollstรคndig unbrauchbar wird.
- Unfรคhigkeit, Runlevel zu wechseln. Probleme mit Init-Skripten oder Dienst Abhรคngigkeiten kann das System daran hindern, den Modus dynamisch zu รคndern. Beispielsweise kann der Wechsel von Runlevel 3 (textbasierter Mehrbenutzermodus) zu Runlevel 5 (grafischer Modus) fehlschlagen, wenn der Display-Manager falsch konfiguriert ist oder fehlt.
- Boot-Schleifen oder AbstรผrzeEine falsche oder fehlerhafte Runlevel-Konfiguration kann dazu fรผhren, dass das System wiederholt versucht, inkompatible Dienste zu laden, was zu stรคndigen Neustarts oder Kern Panik. Dies geschieht hรคufig, wenn der Standard-Runlevel auf einen Modus verweist, der nicht verfรผgbar ist Hardware oder Software.
- Inkonsistentes Verhalten รผber Verteilungen hinweg. Nicht alle Linux-Distributionen Runlevel werden auf die gleiche Weise behandelt. Beispielsweise verwenden einige Runlevel 2 als Standard-Mehrbenutzermodus, wรคhrend andere Runlevel 3 oder 5 verwenden. Dies kann zu Verwirrung und Fehlkonfigurationen fรผhren, wenn Administratoren an mehreren Systemen arbeiten.
- รbergang zu systemd-ZielenModerne Linux-Systeme haben Runlevels weitgehend durch systemd-Ziele ersetzt. Obwohl sie einem รคhnlichen Zweck dienen, kรถnnen die Unterschiede in Terminologie und Befehlen fรผr Administratoren, die an SysVinit gewรถhnt sind, Probleme verursachen und zu Fehlern bei der Dienstverwaltung und Systemwiederherstellung fรผhren.
Was ist der Unterschied zwischen Ziel und Runlevel?
Hier ist eine Vergleichstabelle, die den Unterschied zwischen Runlevels und Ziele unter Linux:
| Aspekt | Runlevel (SysVinit) | Ziel (systemd) |
| Definition | Ein vordefinierter numerischer Status (0โ6), der bestimmt, welche Dienste und Prozesse gestartet werden. | Eine benannte Einheit in systemd, die Dienste gruppiert und den Systemstatus definiert. |
| Format | Identifiziert durch Zahlen (z. B. Runlevel 3 = Mehrbenutzer ohne GUI). | Identifiziert durch beschreibende Namen (z. B. multi-user.target, graphical.target). |
| Konfigurationsdatei | Gesteuert รผber /etc/inittab. | Verwaltet mit Unit-Dateien unter /etc/systemd/system/ und /lib/systemd/system/. |
| Flexibilitรคt | Feste Zustรคnde mit eingeschrรคnkter Anpassung (meistens 7 Runlevel). | Hรถchst flexible, ermรถglicht benutzerdefinierte Ziele und Abhรคngigkeiten. |
| Standardzustand | In /etc/inittab festlegen. | Mit systemctl set-default festlegen . |
| Befehl รคndern | Vorรผbergehend geรคndert mit init oder Telinit . | Vorรผbergehend geรคndert mit systemctl isolate . |
| Erweiterbarkeit | Nicht leicht erweiterbar; an das alte SysVinit gebunden. | Vollstรคndig erweiterbar; Administratoren kรถnnen neue Ziele fรผr spezifische Anforderungen erstellen. |
| Aktueller Statuscheck | รberprรผft mit Runlevel oder who -r. | รberprรผft mit systemctl get-default oder systemctl list-units --type=target. |