Der Init-Prozess Linux Systemadministration Skripte in /sbin/init.d/ Inhalt Index


Runlevel

Durch Runlevel soll ermöglicht werden, das System in verschiedenen Zuständen zu starten:

SuSERedHat
Level Bedeutung
0 Halt
S Single User Mode
1 Multi User without Network
2 Multi User with Network (default)
3 Multi User with Network and X
4,5 Free
6 Reboot
Level Bedeutung
0 Halt
1 Single User Mode
2 Multi User without Network
3 Multi User with Network (default)
4 Free
5 Multi User with Network and X
6 Reboot

Der Systemverwalter hat nun im laufenden Betrieb die Möglichkeit, durch

root@sonne> init S

das Runlevel zu wechseln. Der Wechsel der Modi dient u.a. der Pflege des Systems (Single User Mode) oder der voreingestellten Benutzung der grafischen Oberfläche (Multi User with Network and X). Durch

root@sonne> init 0

kann das System angehalten (wie halt) und durch

root@sonne> init 6

neu gestartet (wie reboot) werden. Ein Wechsel des Runlevels im aktuellen Betrieb läuft intern wie folgt ab:

  1. init ruft das Shellskript /sbin/init.d/rc (SuSE) bzw. /etc/rc.d/rc (RedHat) mit dem neuen Runlevel auf


  2. rc ruft daraufhin alle Stop-Skripte des aktuellen Runlevels auf (Verzeichnis /sbin/init.d/rcX.d, X entspricht dem alten Runlevel; bei RedHat befinden sich die Verzeichnisse unter /etc/rc.d).

    Diese Skripte sind mit Nummern zwischen 0 und 99 versehen, die besagen, dass ein Skript mit niedriger Nummer zwingend vor dem Skript mit einer höheren Nummer abzuarbeiten ist. Bei gleicher Nummer (Priorität) ist die Reihenfolge der Ausführung nicht vorgeschrieben, erfolgt jedoch meist alphabetisch. Diese Abbildung zeigt die Namenskonvention der Skripte.

    Die Dateien in den Unterverzeichnissen zu den einzelnen Runlevels sind nur Links auf Dateien eines anderen Verzeichnisses, so sind K20sendmail und S20sendmail Verweise auf ein und dasselbe Skript. Dieses Skript erkennt anhand des Linknamens, in welchem Kontext es aufgerufen wurde.

  3. Analog zum letzten Punkt werden nun von rc die Start-Skripte des neuen Runlevels abgearbeitet


  4. Bei erneutem Start desselben Runlevels überprüft init nur die Datei /etc/inittab auf Veränderungen und führt entsprechende Aktionen aus

Das Ändern des Default-Runlevels lässt sich neben dem direkten Bearbeiten der Datei /etc/inittab durch distributionsspezifische Tools realisieren:

Namenskonvention der Skripte


Der Init-Prozess Linux Systemadministration Skripte in /sbin/init.d/ Inhalt Index