LPIC101/101.3

Aus Foxwiki


Runlevel

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.

Inhaltsverzeichnis

Übersicht

Runlevel 0

Runlevel 1 (S)

Runlevel 2

Runlevel 3

Runlevel 4

Runlevel 5

Runlevel 6

Konfiguration

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.

Weitere Action-Werte werden in der Manpage „inittab“ beschrieben.

Erläuterung

Erläuterung

Standardmäßig wird nach einer Grundinstallation von Arch in den Runlevel 3 gebootet, dies wird mittels der Zeile …

id:3:initdefault:

… definiert. „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

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.