LPIC101/101.3 Runlevel wechseln: Unterschied zwischen den Versionen
K Dirkwagner verschob die Seite LPIC101/101.3 nach LPIC101/101.3 Runlevel wechseln |
|||
(28 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''LPIC101/101.3''' - Runlevel wechseln und das System anhalten oder neu starten | |||
== Beschreibung == | |||
Die Bezeichnung „Runlevel“ kann mit dem Begriff „Betriebszustand“ übersetzt werden, wird jedoch als feststehender Begriff auch im Deutschen als „Runlevel“ bezeichnet, und zwar in der Form „Runlevel N“, wobei N durch den betreffenden Runlevel ersetzt wird.<br> | |||
Jeder Runlevel definiert einen anderen Zustand, in dem sich ein System befindet.<br> | |||
Es gibt unter Linux insgesamt acht Runlevels, von denen unter Arch zwei Runlevel allerdings nicht benutzt werden.<br> | |||
Jeder Runlevel definiert einen anderen Zustand, in dem sich ein System befindet. | |||
Es gibt unter Linux insgesamt acht Runlevels, von denen unter Arch zwei Runlevel allerdings nicht benutzt werden | |||
Bei einem Systemstart durchläuft das System alle Runlevel außer Runlevel 0. | Bei einem Systemstart durchläuft das System alle Runlevel außer Runlevel 0. | ||
Der Start wird vom System als beendet angesehen, wenn der als Standard-Runlevel definierte Runlevel erreicht ist. | Der Start wird vom System als beendet angesehen, wenn der als Standard-Runlevel definierte Runlevel erreicht ist. | ||
=Run Levels= | ==Run Levels== | ||
- Runlevel 0 ist System Halt | |||
- Runlevel 1 ist Single user mode (genau so runlevel S) | |||
- Runlevel 2 ist Local multiuser ohne remote netzwerk | |||
- Runlevel 3 ist Full multiuser mit Netzwerk. | |||
- Runlevel 4 ist nicht benutzt. | |||
- Runlevel 5 ist voll multiuser mit Netzwerk und xdm | |||
- Runlevel 6 ist System neustart. | |||
- Runlevel S ist Single user mode (genauso wie Runlevel 1) | |||
'''Runlevel 0''' | '''Runlevel 0''' | ||
In diesem Runlevel befindet sich der Computer nur sehr kurz, und zwar dann, wenn er heruntergefahren wird. | In diesem Runlevel befindet sich der Computer nur sehr kurz, und zwar dann, wenn er heruntergefahren wird. | ||
Daher wird Runlevel 0 auch als „Shutdown“ bezeichnet.<br> | |||
Daher wird Runlevel 0 auch als „Shutdown“ bezeichnet. | |||
Es werden alle Netzwerk-Verbindungen getrennt, dann werden die Dateipuffer geschrieben, die Dateisysteme ausgehängt und das System ausgeschaltet. | Es werden alle Netzwerk-Verbindungen getrennt, dann werden die Dateipuffer geschrieben, die Dateisysteme ausgehängt und das System ausgeschaltet. | ||
'''Runlevel 1 (S)''' | |||
Dies ist ein Wartungsmodus. Im Runlevel S stehen nur lokale Ressourcen zur Verfügung. | Dies ist ein Wartungsmodus. Im Runlevel S stehen nur lokale Ressourcen zur Verfügung. | ||
Und zwar sehr eingeschränkt. <br> Es werden nur für den Betrieb absolut notwendige Dienste gestartet, und es stehen neben Ein- und Ausgabegeräten und Festplatten keine weiteren Geräte zur Verfügung.<br> | |||
Und zwar sehr eingeschränkt. <br> Es werden nur für den Betrieb absolut notwendige Dienste gestartet, und es stehen neben Ein- und Ausgabegeräten und Festplatten keine weiteren Geräte zur Verfügung. | Dieser Runlevel wird für gewöhnlich nur dazu verwendet, Dateisystem-Tests durchzuführen, wenn das System nicht mehr normal starten kann.<br> | ||
Dieser Runlevel wird für gewöhnlich nur dazu verwendet, Dateisystem-Tests durchzuführen, wenn das System nicht mehr normal starten kann. | |||
Runlevel 1 und Runlevel S sind für gewöhnlich identisch. | Runlevel 1 und Runlevel S sind für gewöhnlich identisch. | ||
'''Runlevel 2''' | |||
Dieser Runlevel definiert als erster Runlevel in der Reihenfolge einen Mehrbenutzer-Betrieb. | |||
Dieser ist allerdings nur auf den Rechner beschränkt. | |||
Die Netzwerkunterstützung ist nicht verfügbar. | |||
Unter Arch wird dieser Runlevel nicht verwendet. | Unter Arch wird dieser Runlevel nicht verwendet. | ||
'''Runlevel 3''' | |||
Im Runlevel 3 sind alle lokalen Ressourcen verfügbar, und es bestehen Mehrbenutzer- sowie Netzwerkunterstützung. | Im Runlevel 3 sind alle lokalen Ressourcen verfügbar, und es bestehen Mehrbenutzer- sowie Netzwerkunterstützung. | ||
Dies ist der übliche Runlevel für Systeme ohne grafische Benutzerschnittstelle und nach einer Arch-Grundinstallation der Standard-Runlevel. | Dies ist der übliche Runlevel für Systeme ohne grafische Benutzerschnittstelle und nach einer Arch-Grundinstallation der Standard-Runlevel. | ||
'''Runlevel 4''' | |||
Dieser Runlevel ist nicht weiter definiert, kann aber dennoch verwendet werden. | Dieser Runlevel ist nicht weiter definiert, kann aber dennoch verwendet werden. | ||
'''Runlevel 5''' | |||
Dieser Runlevel entspricht weitestgehend Runlevel 3, allerdings wird unter Runlevel 5 zusätzlich noch eine grafische Benutzerschnittstelle bereitgestellt. | Dieser Runlevel entspricht weitestgehend Runlevel 3, allerdings wird unter Runlevel 5 zusätzlich noch eine grafische Benutzerschnittstelle bereitgestellt. | ||
'''Runlevel 6''' | |||
Im Runlevel 6 befindet der Computer sich, wenn er neu gestartet wird. | Im Runlevel 6 befindet der Computer sich, wenn er neu gestartet wird. | ||
Auch hier werden alle Daemons beendet, die Dateisysteme ausgehängt und alle Netzwerkverbindungen getrennt. | Auch hier werden alle Daemons beendet, die Dateisysteme ausgehängt und alle Netzwerkverbindungen getrennt. | ||
Danach wird das System neu gestartet. | Danach wird das System neu gestartet. | ||
Dieser Runlevel wird auch als „Reboot“ bezeichnet. | Dieser Runlevel wird auch als „Reboot“ bezeichnet. | ||
= | == Dateien, Verzeichnisse, Anwendungen == | ||
*/etc/inittab | */etc/inittab (in neueren Distributionen mit systemd gibt es diese Datei nicht mehr) | ||
*shutdown | *shutdown | ||
*init | *init | ||
*/etc/init.d | */etc/init.d | ||
*telinit | *telinit | ||
*systemd | *systemd (Systemd ist abwärtskompatibel und kann auch weiterhin die alten Init-Skripte ausführen.) | ||
*systemctl | *systemctl | ||
*/etc/systemd/ | */etc/systemd/ | ||
Zeile 82: | Zeile 66: | ||
*wall | *wall | ||
=Wichtigste Befehle= | ==Wichtigste Befehle== | ||
Aktuellen Runlevel ausgeben: | |||
who -r | who -r | ||
Aktuellen Runlevel wechseln (n: ist die Nummber des Runlevels): | |||
# telinit n | # telinit n | ||
oder | oder: | ||
# init n | # init n | ||
=Konfiguration= | ==Konfiguration== | ||
Was das System in einem bestimmten Runlevel machen soll, wird in der Datei „/etc/inittab“ definiert. | Was das System in einem bestimmten Runlevel machen soll, wird in der Datei „/etc/inittab“ definiert. | ||
Die Definitionen folgen dabei immer einem bestimmten Schema. | Die Definitionen folgen dabei immer einem bestimmten Schema. | ||
id:runlevels:action:process | id:runlevels:action:process | ||
* Die ID direkt am Anfang einer jeden Definitionszeile ist eine bis zu vier stellen lange, eindeutige Zeichenfolge, die diese Zeile eindeutig vom System erkennbar macht. | |||
Die ID direkt am Anfang einer jeden Definitionszeile ist eine bis zu vier stellen lange, eindeutige Zeichenfolge, die diese Zeile eindeutig vom System erkennbar macht. | * Das zweite Feld definiert, für welchen Runlevel die Definition gilt. | ||
Das zweite Feld definiert, für welchen Runlevel die Definition gilt. | |||
Es können mehrere Runlevel angegeben werden. | Es können mehrere Runlevel angegeben werden. | ||
Diese werden ohne Trennzeichen direkt aneinandergereiht: z. B. „S245“, um diese Definition für die Runlevels S, 2, 4 und 5 einzustellen. | |||
Diese werden ohne Trennzeichen direkt aneinandergereiht: z.B. „S245“, um diese Definition für die Runlevels S, 2, 4 und 5 einzustellen. | * Die dritte Stelle in der Definition bestimmt, wie/wann der am Ende der Zeile definierte Prozess gestartet werden soll. | ||
Einige mögliche Werte sind zum Beispiel:<br> | |||
Die dritte Stelle in der Definition bestimmt, wie/wann der am Ende der Zeile definierte Prozess gestartet werden soll. | '''respawn:''' Der Prozess wird jedes mal neu gestartet, wenn er beendet wird.<br> | ||
'''wait:''' Der Prozess startet, wenn der definierte Runlevel betreten wird, der Bootvorgang bleibt so lange stehen, bis der definierte Prozess beendet wird.<br> | |||
Einige mögliche Werte sind zum Beispiel | '''once:''' Der Prozess wird einmalig bei betreten des Runlevels ausgeführt.<br> | ||
'''initdefault:''' Diese Angabe bestimmt, welcher Runlevel (eben jener, der in einer mit „initdefault“ konfigurierten Zeile definiert wurde) nach dem Systemstart benutzt werden soll. | |||
Das Prozess-Feld wird dabei ignoriert. | Das Prozess-Feld wird dabei ignoriert. | ||
=Erläuterung= | ==Erläuterung== | ||
Standardmäßig wird nach einer Grundinstallation von Arch in den Runlevel 3 gebootet, dies wird mittels der Zeile | Standardmäßig wird nach einer Grundinstallation von Arch in den Runlevel 3 gebootet, dies wird mittels der nachsten Zeile definiert: | ||
id:3:initdefault: | id:3:initdefault: | ||
„initdefault“ bestimmt hier den Standard-Runlevel. | „initdefault“ bestimmt hier den Standard-Runlevel. | ||
Das Prozess-Feld ist leer gelassen, da diese Angabe sowieso ignoriert wird, will man nach dem Booten nicht in Runlevel 3 sein, sondern auch eine grafische Benutzerschnittstelle verwenden, so ersetzt man die 3 durch eine 5: | |||
id:5:initdefault: | id:5:initdefault: | ||
Nun wird automatisch nach dem Start des Systems in Runlevel 5 gewechselt. | Nun wird automatisch nach dem Start des Systems in Runlevel 5 gewechselt. | ||
Dieser muss allerdings noch definiert werden, sonst passiert vermutlich gar nichts. | Dieser muss allerdings noch definiert werden, sonst passiert vermutlich gar nichts. | ||
Man kann hier beispielsweise XDM starten lassen, sofern man dieses als Login-Manager benutzt: | |||
Man kann hier beispielsweise XDM starten lassen, sofern man dieses als Login-Manager benutzt | |||
x:5:respawn:/usr/bin/xdm -nodaemon | x:5:respawn:/usr/bin/xdm -nodaemon | ||
Wenn XDM nun beendet wird, wird es automatisch neu gestartet.<br> | |||
Wenn man dies nicht will, kann man auch „once“ als Action definieren, wenn XDM nun beendet wird, landet man auf der Befehlszeile.<br> | |||
Die Login-Shells, die man unter Alt+F1 bis Alt+F6 erreicht, werden ebenfalls über solche Definitionen gestartet:<br> | |||
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux | c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux | ||
Die ID ist hier „c1“, und beim betreten der Runlevels 2, 3, 4 und 5 wird das Programm „/sbin/agetty“ ausgeführt, wobei die Parameter „-8“, „38400“, „tty1“ und „linux“ benutzt werden.<br> | |||
Die ID ist hier „c1“, und beim betreten der Runlevels 2, 3, 4 und 5 wird das Programm „/sbin/agetty“ ausgeführt, wobei die Parameter „-8“, „38400“, „tty1“ und „linux“ benutzt werden. | Was genau die Parameter bewirken, kann in der Manpage zu „agetty“ nachgelesen werden.<br>Standardmäßig werden unter Arch sechs TTYs erstellt. | ||
Was genau die Parameter bewirken, kann in der Manpage zu „agetty“ nachgelesen werden. | |||
Standardmäßig werden unter Arch sechs TTYs erstellt. | |||
Aus Performancegründen kann man dies aber ändern, wenn man sowieso hauptsächlich mit einer grafischen Oberfläche arbeitet, oder der Rechner hauptsächlich als Server im Einsatz ist, auf den nur per SSH zugegriffen wird. | Aus Performancegründen kann man dies aber ändern, wenn man sowieso hauptsächlich mit einer grafischen Oberfläche arbeitet, oder der Rechner hauptsächlich als Server im Einsatz ist, auf den nur per SSH zugegriffen wird. | ||
Dazu löscht man die weiteren Definitionen einfach. | Dazu löscht man die weiteren Definitionen einfach. | ||
Für den Notfall sollte man allerdings mindestens ein <big><big>TTY</big></big> definiert lassen. | Für den Notfall sollte man allerdings mindestens ein <big><big>TTY</big></big> definiert lassen. | ||
=Beispiel= | ==Beispiel== | ||
Nach dem selben System sind die weiteren Standard-Angaben unter Arch aufgebaut. | Nach dem selben System sind die weiteren Standard-Angaben unter Arch aufgebaut. | ||
Eine vollständige, aber unkommentierte und bereits angepasste „/etc/inittab“ für Arch ist zum Beispiel diese hier: | Eine vollständige, aber unkommentierte und bereits angepasste „/etc/inittab“ für Arch ist zum Beispiel diese hier: | ||
id:5:initdefault: | id:5:initdefault: | ||
rc::sysinit:/etc/rc.sysinit | rc::sysinit:/etc/rc.sysinit | ||
Zeile 173: | Zeile 126: | ||
Der Standard-Runlevel ist Runlevel 5. Wenn in diesen Runlevel gestartet wurde, wird durch die am Ende der Datei befindliche Definition X mit den Rechten und der Umgebung des Anwenders „benutzer“ gestartet wird. | Der Standard-Runlevel ist Runlevel 5. Wenn in diesen Runlevel gestartet wurde, wird durch die am Ende der Datei befindliche Definition X mit den Rechten und der Umgebung des Anwenders „benutzer“ gestartet wird. | ||
Zudem wird auch nur ein TTY definiert. | Zudem wird auch nur ein '''TTY''' definiert. | ||
Die weiteren Angaben sind Standard-Angaben und sollten nur geändert werden, wenn man sich über die Konsequenzen bewusst ist. | Die weiteren Angaben sind Standard-Angaben und sollten nur geändert werden, wenn man sich über die Konsequenzen bewusst ist. | ||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
==== Links ==== | |||
===== Weblinks ===== | |||
[[ | [[Kategorie:Linux/LPIC/101]] | ||
[[ | [[Kategorie:Linux/Systemstart]] | ||
</noinclude> |
Aktuelle Version vom 21. September 2024, 10:43 Uhr
LPIC101/101.3 - Runlevel wechseln und das System anhalten oder neu starten
Beschreibung
Die Bezeichnung „Runlevel“ kann mit dem Begriff „Betriebszustand“ übersetzt werden, wird jedoch als feststehender Begriff auch im Deutschen als „Runlevel“ bezeichnet, und zwar in der Form „Runlevel N“, wobei N durch den betreffenden Runlevel ersetzt wird.
Jeder Runlevel definiert einen anderen Zustand, in dem sich ein System befindet.
Es gibt unter Linux insgesamt acht Runlevels, von denen unter Arch zwei Runlevel allerdings nicht benutzt werden.
Bei einem Systemstart durchläuft das System alle Runlevel außer Runlevel 0. Der Start wird vom System als beendet angesehen, wenn der als Standard-Runlevel definierte Runlevel erreicht ist.
Run Levels
- Runlevel 0 ist System Halt - Runlevel 1 ist Single user mode (genau so runlevel S) - Runlevel 2 ist Local multiuser ohne remote netzwerk - Runlevel 3 ist Full multiuser mit Netzwerk. - Runlevel 4 ist nicht benutzt. - Runlevel 5 ist voll multiuser mit Netzwerk und xdm - Runlevel 6 ist System neustart. - Runlevel S ist Single user mode (genauso wie Runlevel 1)
Runlevel 0
In diesem Runlevel befindet sich der Computer nur sehr kurz, und zwar dann, wenn er heruntergefahren wird.
Daher wird Runlevel 0 auch als „Shutdown“ bezeichnet.
Es werden alle Netzwerk-Verbindungen getrennt, dann werden die Dateipuffer geschrieben, die Dateisysteme ausgehängt und das System ausgeschaltet.
Runlevel 1 (S)
Dies ist ein Wartungsmodus. Im Runlevel S stehen nur lokale Ressourcen zur Verfügung.
Und zwar sehr eingeschränkt.
Es werden nur für den Betrieb absolut notwendige Dienste gestartet, und es stehen neben Ein- und Ausgabegeräten und Festplatten keine weiteren Geräte zur Verfügung.
Dieser Runlevel wird für gewöhnlich nur dazu verwendet, Dateisystem-Tests durchzuführen, wenn das System nicht mehr normal starten kann.
Runlevel 1 und Runlevel S sind für gewöhnlich identisch.
Runlevel 2 Dieser Runlevel definiert als erster Runlevel in der Reihenfolge einen Mehrbenutzer-Betrieb. Dieser ist allerdings nur auf den Rechner beschränkt. Die Netzwerkunterstützung ist nicht verfügbar. Unter Arch wird dieser Runlevel nicht verwendet.
Runlevel 3 Im Runlevel 3 sind alle lokalen Ressourcen verfügbar, und es bestehen Mehrbenutzer- sowie Netzwerkunterstützung. Dies ist der übliche Runlevel für Systeme ohne grafische Benutzerschnittstelle und nach einer Arch-Grundinstallation der Standard-Runlevel.
Runlevel 4 Dieser Runlevel ist nicht weiter definiert, kann aber dennoch verwendet werden.
Runlevel 5 Dieser Runlevel entspricht weitestgehend Runlevel 3, allerdings wird unter Runlevel 5 zusätzlich noch eine grafische Benutzerschnittstelle bereitgestellt.
Runlevel 6 Im Runlevel 6 befindet der Computer sich, wenn er neu gestartet wird. Auch hier werden alle Daemons beendet, die Dateisysteme ausgehängt und alle Netzwerkverbindungen getrennt. Danach wird das System neu gestartet. Dieser Runlevel wird auch als „Reboot“ bezeichnet.
Dateien, Verzeichnisse, Anwendungen
- /etc/inittab (in neueren Distributionen mit systemd gibt es diese Datei nicht mehr)
- shutdown
- init
- /etc/init.d
- telinit
- systemd (Systemd ist abwärtskompatibel und kann auch weiterhin die alten Init-Skripte ausführen.)
- systemctl
- /etc/systemd/
- /usr/lib/systemd/
- wall
Wichtigste Befehle
Aktuellen Runlevel ausgeben:
who -r
Aktuellen Runlevel wechseln (n: ist die Nummber des Runlevels):
# telinit n
oder:
# init n
Konfiguration
Was das System in einem bestimmten Runlevel machen soll, wird in der Datei „/etc/inittab“ definiert. Die Definitionen folgen dabei immer einem bestimmten Schema.
id:runlevels:action:process
- Die ID direkt am Anfang einer jeden Definitionszeile ist eine bis zu vier stellen lange, eindeutige Zeichenfolge, die diese Zeile eindeutig vom System erkennbar macht.
- Das zweite Feld definiert, für welchen Runlevel die Definition gilt.
Es können mehrere Runlevel angegeben werden. Diese werden ohne Trennzeichen direkt aneinandergereiht: z. B. „S245“, um diese Definition für die Runlevels S, 2, 4 und 5 einzustellen.
- Die dritte Stelle in der Definition bestimmt, wie/wann der am Ende der Zeile definierte Prozess gestartet werden soll.
Einige mögliche Werte sind zum Beispiel:
respawn: Der Prozess wird jedes mal neu gestartet, wenn er beendet wird.
wait: Der Prozess startet, wenn der definierte Runlevel betreten wird, der Bootvorgang bleibt so lange stehen, bis der definierte Prozess beendet wird.
once: Der Prozess wird einmalig bei betreten des Runlevels ausgeführt.
initdefault: Diese Angabe bestimmt, welcher Runlevel (eben jener, der in einer mit „initdefault“ konfigurierten Zeile definiert wurde) nach dem Systemstart benutzt werden soll.
Das Prozess-Feld wird dabei ignoriert.
Erläuterung
Standardmäßig wird nach einer Grundinstallation von Arch in den Runlevel 3 gebootet, dies wird mittels der nachsten Zeile definiert:
id:3:initdefault:
„initdefault“ bestimmt hier den Standard-Runlevel.
Das Prozess-Feld ist leer gelassen, da diese Angabe sowieso ignoriert wird, will man nach dem Booten nicht in Runlevel 3 sein, sondern auch eine grafische Benutzerschnittstelle verwenden, so ersetzt man die 3 durch eine 5:
id:5:initdefault:
Nun wird automatisch nach dem Start des Systems in Runlevel 5 gewechselt. Dieser muss allerdings noch definiert werden, sonst passiert vermutlich gar nichts. Man kann hier beispielsweise XDM starten lassen, sofern man dieses als Login-Manager benutzt:
x:5:respawn:/usr/bin/xdm -nodaemon
Wenn XDM nun beendet wird, wird es automatisch neu gestartet.
Wenn man dies nicht will, kann man auch „once“ als Action definieren, wenn XDM nun beendet wird, landet man auf der Befehlszeile.
Die Login-Shells, die man unter Alt+F1 bis Alt+F6 erreicht, werden ebenfalls über solche Definitionen gestartet:
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
Die ID ist hier „c1“, und beim betreten der Runlevels 2, 3, 4 und 5 wird das Programm „/sbin/agetty“ ausgeführt, wobei die Parameter „-8“, „38400“, „tty1“ und „linux“ benutzt werden.
Was genau die Parameter bewirken, kann in der Manpage zu „agetty“ nachgelesen werden.
Standardmäßig werden unter Arch sechs TTYs erstellt.
Aus Performancegründen kann man dies aber ändern, wenn man sowieso hauptsächlich mit einer grafischen Oberfläche arbeitet, oder der Rechner hauptsächlich als Server im Einsatz ist, auf den nur per SSH zugegriffen wird.
Dazu löscht man die weiteren Definitionen einfach.
Für den Notfall sollte man allerdings mindestens ein TTY definiert lassen.
Beispiel
Nach dem selben System sind die weiteren Standard-Angaben unter Arch aufgebaut. Eine vollständige, aber unkommentierte und bereits angepasste „/etc/inittab“ für Arch ist zum Beispiel diese hier:
id:5:initdefault: rc::sysinit:/etc/rc.sysinit rs:S1:wait:/etc/rc.single rm:2345:wait:/etc/rc.multi rh:06:wait:/etc/rc.shutdown su:S:wait:/sbin/sulogin -p c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux ca::ctrlaltdel:/sbin/shutdown -t3 -r now x:5:once:/bin/su benutzer -l -c "/bin/bash -l -c startx"
Der Standard-Runlevel ist Runlevel 5. Wenn in diesen Runlevel gestartet wurde, wird durch die am Ende der Datei befindliche Definition X mit den Rechten und der Umgebung des Anwenders „benutzer“ gestartet wird. Zudem wird auch nur ein TTY definiert. Die weiteren Angaben sind Standard-Angaben und sollten nur geändert werden, wenn man sich über die Konsequenzen bewusst ist.