Was sind Runlevels unter Linux?
Beim Booten eines Linux-Systems wird das Standard-Runlevel aufgerufen und die mit diesem Runlevel verknüpften Startscripts ausgeführt. Sie können auch zwischen Runlevels wechseln. Beispielsweise gibt es einen Runlevel für Wiederherstellungs- und Wartungsvorgänge.
Traditionell verwendete Linux Init-Skripte im Stil von System V - während neue Init-Systeme herkömmliche Runlevel überflüssig machen werden, haben sie es noch nicht. Zum Beispiel verwendet das Upstart-System von Ubuntu noch traditionelle Skripts im Stil von System V.
Was ist ein Runlevel??
Beim Booten eines Linux-Systems wird das gestartet drin Prozesse. init ist für das Starten der anderen Prozesse im System verantwortlich. Wenn Sie zum Beispiel Ihren Linux-Computer starten, startet der Kernel init, und init führt die Startskripts aus, um Ihre Hardware zu initialisieren, Netzwerke einzurichten und Ihren grafischen Desktop zu starten.
Es gibt jedoch nicht nur einen Satz von Startskripten, die von init ausgeführt werden. Es gibt mehrere Ausführungsebenen mit eigenen Startskripts. Beispielsweise kann ein Runlevel das Netzwerk aufrufen und den grafischen Desktop starten, während ein anderes Runlevel das Netzwerk deaktiviert und den grafischen Desktop überspringen kann. Dies bedeutet, dass Sie mit einem einzigen Befehl vom grafischen Desktop-Modus in den Text-Konsolenmodus wechseln können, ohne dass Sie verschiedene Dienste manuell starten und stoppen müssen.
Insbesondere führt init die Skripts aus, die sich in einem bestimmten Verzeichnis befinden, das dem Runlevel entspricht. Wenn Sie beispielsweise in Ubuntu Runlevel 3 eingeben, führt init die Scripts aus, die sich im Verzeichnis /etc/rc3.d befinden.
Zumindest funktioniert dies mit einem herkömmlichen System V init-System - Linux-Distributionen ersetzen das alte System V init-System. Während Ubuntus Upstart derzeit die Kompatibilität mit SysV-Init-Skripts beibehält, wird sich dies wahrscheinlich in der Zukunft ändern.
Die Runlevels
Einige Runlevel sind Standard zwischen Linux-Distributionen, während einige Runlevel von Distribution zu Distribution variieren.
Die folgenden Runlevels sind Standard:
- 0 - Halt (Schließt das System.)
- 1 - Einzelbenutzermodus (Das System startet im Superuser-Modus, ohne Daemons oder Netzwerke zu starten. Ideal für den Start in eine Wiederherstellungs- oder Diagnoseumgebung.)
- 6 - Starten Sie neu
Runlevel 2-5 variieren je nach Verteilung. Auf Ubuntu und Debian sind die Runlevel 2-5 beispielsweise gleich und bieten einen vollständigen Mehrbenutzermodus mit Netzwerk- und grafischem Login. Bei Fedora und Red Hat bietet Runlevel 2 einen Mehrbenutzermodus ohne Netzwerkverbindung (nur Konsolenanmeldung), Runlevel 3 einen Mehrbenutzermodus mit Netzwerkfunktion (nur Konsolenanmeldung), Runlevel 4 wird nicht verwendet und Runlevel 5 bietet einen Mehrbenutzermodus Vernetzung und grafisches Login.
Wechseln zu einem anderen Runlevel
Verwenden Sie den folgenden Befehl, um zu einem anderen Runlevel zu wechseln, während das System bereits ausgeführt wird:
sudo telinit #
Ersetzen Sie # durch die Nummer des Runlevel, zu dem Sie wechseln möchten. Lassen Sie sudo aus und führen Sie den Befehl als root aus, wenn Sie eine Distribution ausführen, die sudo nicht verwendet.
Direktes Booten zu einem bestimmten Runlevel
Sie können einen Runlevel für das Booten aus dem Bootloader auswählen, z. B. Grub. Drücken Sie zu Beginn des Startvorgangs eine Taste, um auf Grub zuzugreifen, wählen Sie Ihren Starteintrag aus und drücken Sie e, um ihn zu bearbeiten.
Du kannst hinzufügen Single bis zum Ende der Linux Zeile, um den Einzelbenutzer-Runlevel (Runlevel 1) einzugeben. (Drücken Sie zum Neustart die Tastenkombination Strg + x.) Dies entspricht der Option für den Wiederherstellungsmodus in Grub.
Normalerweise könnten Sie eine Zahl als Kernel-Parameter angeben, und Sie würden zu diesem Runlevel booten, beispielsweise mit 3 anstatt Single Booten auf Runlevel 3. Dies scheint jedoch bei den neuesten Ubuntu-Versionen nicht zu funktionieren - Upstart scheint dies nicht zuzulassen. In ähnlicher Weise hängt es von Ihrer Distribution ab, wie Sie den Standard-Runlevel ändern.
Während der Upstart-Daemon von Ubuntu noch immer das SystemV-System emuliert, werden sich viele dieser Informationen in der Zukunft ändern. Zum Beispiel ist Upstart ereignisbasiert - es kann Dienste anhalten und starten, wenn Ereignisse auftreten (z. B. könnte ein Dienst gestartet werden, wenn ein Hardwaregerät an das System angeschlossen ist und beim Entfernen des Geräts angehalten wird.) Fedora hat auch einen eigenen Nachfolger zu init, systemd.