Ändern des Runlevel, Herunterfahren und Neustart des Systems

Wichtung: 3

Beschreibung: Die Kandidaten sollen in der Lage sein, die Runlevel des Systems zu verwalten. Dieses Lernziel beinhaltet auch den Wechsel in den Single-User-Modus, das Herunterfahren oder den Neustart des Systems. Die Kandidaten sollen in der Lage sein, andere Benutzer vor dem Wechsel des Runlevels zu benachrichtigen und Prozesse ordentlich zu beenden. Dieses Lernziel beinhaltet ebenfalls auch die Festlegung des Standard-Runlevel.

Wichtigste Wissensgebiete:
Festlegung des Standard-Runlevel.
Herunterfahren und Neustart des Systems auf der Befehlszeile.
Wechseln zwischen Runlevel einschließlich Einzelbenutzermodus.
Benachrichtigen der Benutzer bevor ein Runlevelwechsel stattfindet oder vor anderen wichtigen Systemereignissen.
Ordentliches Beenden von Prozessen.

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
/etc/inittab
shutdown
init

Runlevel - /etc/inittab

Ein Runlevel definiert einen Zustand des Unix-Systems. Unter einem Zustand verstehen wir eine bestimmte Konstellation aktiver Prozesse, die während des Bootvorgangs initiiert wurden. Dabei liegt es in der freien Hand der Linux-Distributionen, welche Dienste unf Funktionen in welchem Runlevel zur Verfügung stehen.

0 = System herunterfahren ohne anschließenden Neustart. (halt)
6 = System herunterfahren und neu starten. (reboot)
S = System im Single User Mode betreiben

Ein Beispiel: bei Fedora (RedHat) sind die Runlevel folgendermaßen eingerichtet:
Runlevel 2 = Multiuser ohne Netzwerk
Runlevel 3 = Multiuser mit Netzwerk
Runlevel 4 = Nicht verwendet
Runlevel 5 = Multiuser + Netzwerk + grafischer Login

Init-Skripte:
Um einen Dienst bzw. Dämon unter Linux zu starten, muss man dessen Init-Skript aufrufen, um den Dienst zu initialisieren. Die Init-Skripte befinden sich in der Regel im Verzeichnis /etc/init.d/. Um beispielsweise den Druckdienst "cups" zu verwalten, tippt man folgendes in die Shell:

/etc/init.d/cupsd start = Startet den Dienst
/etc/init.d/cupsd stop = Stoppt den Dienst
/etc/init.d/cupsd restart = Startet den Dienst neu
/etc/init.d/cupsd status = Zeigt den Status des Dienstes

Runlevel:
Beim Booten eines Linux-Systems werden nach und nach die benötigten Dienste gestartet. Um den Bootvorgang besser verwalten zu können, gruppiert man bestimmte Dienste nach Runlevels. Ein Runlevel ist somit lediglich eine Sammlung von Diensten:

  // Auszug aus der /etc/inittab

#
# runlevel 0 is System halt (Do never use this for initdefault)
# runlevel 1 is Single user mode
# runlevel 2 is Local multiuser without remote network (e.g. NFS)
# runlevel 3 is Full multiuser with network
# runlevel 4 is Not used
# runlevel 5 is Full multiuser with network and xdm
# runlevel 6 is System reboot (Do never use this for initdefault)
#

id:5:initdefault:

Der Eintrag id:5:initdefault: steht dafür, in welchen Runlevel das Linux-System gestartet werden soll. Diesen Eintrag kann man editieren, wenn man beispielsweise nicht möchte, dass das Linux-System den grafischen X-Server startet.

 

Welche Init-Skripte in welchem Runlevel gestartet werden, erfährt das Linux-System durch die Verzeichnisse der Init-Skripte. Dazu gibt es zu jedem Runlevel im Verzeichnis /etc/rc.d ein Verzeichnis, das rc?.d heisst. Dabei steht das '?' für die Nummer des jeweiligen Runlevels.

Wechsel des Runlevels

Mit dem Befehl init kann man in die Runlevel wechseln:

# init 3

Mit diesem Befehl wechselt man in den Runlevel 3.Statt init kann auch das Programm telinit benutzt werden, das exakt genauso funktioniert. In der Regel ist telinit nur ein symbolischer Link auf init, der aus Kompatibilitätsgründen existiert.

shutdown - Herunterfahren des Systems

Es gibt mehrere Möglichkeiten, ein Linux-System herunterzufahren bzw. neuzustarten:

reboot
poweroff
suspend
halt

Es wäre sogar möglich, das System mit init 0 bzw init 6 herunterzufahren. Dies ist aber keine saubere Variante, da beim Herunterfahren noch Wartungsarbeiten wie beispielsweise das leeren von Caches durchgeführt werden sollten. Die sauberste Möglichkeit, das System herunterzufahren, ist shutdown. So werden bei shutdown die eingeloggten User und die geöffneten Programme über das Herunterfahren informiert.Somit bleibt Zeit zum Reagieren.

shutdown -h +10 = Herunterfahren (-h) in 10 Minuten
shutdown -r now = Sofortiger Neustart (-r)
shutdown -c = Abbrechen des Herunterfahrens