next up previous contents index
Next: Nichts über TCP/IP Up: Das Verzeichnis /etc Previous: /etc/inittab

/etc/rc

     Die Datei /etc/rc ist die Systeminitialisierungsdatei. Sie wird vom init-Programm der Shell übergeben, die die darin enthaltenen Kommandozeilen ausführt. Diese Initialisierung findet beim Übergang des Systems in einen Mehrbenutzermodus statt.

Die genaue Funktion und der Aufbau der Systeminitialisierungsdatei kann sich für die beiden Versionen von init ganz erheblich unterscheiden. Dabei ist wieder das sysvinit    das bei weitem kompliziertere, aber auch das vielseitigere der beiden Modelle.

Mike Jagdis hat seinem sysvinit eine ganze Kaskade von Initialisierungsdateien mitgegeben, die bei jedem Moduswechsel bestimmen, welche Prozesse gestartet werden sollen, welche angehalten und welche weiterlaufen sollen. Dazu wird das /etc/rc-Script von init mit einem Parameter aufgerufen, der genau dem gewünschten Runlevel entspricht. Das /etc/rc-Script sucht seinerseits in einem dem Runlevel entsprechend benannten Verzeichnis nach weiteren Scriptdateien. Wenn in den Runlevel 4 gewechselt werden soll, sucht es beispielsweise in dem Verzeichnis /etc/rc4.d

Die Scriptdateien in den rc?.d Verzeichnissen beginnen allen entweder mit einem K für kill oder einem S für start. Zuerst werden die Killscripts aufgerufen, denen der Parameter ßtopïn der Kommandozeile übergeben wird. Danach werden die Startscripts mit dem Parameter ßtartäusgeführt. Die Parameter werden von den mit dem sysvinit gelieferten Shellscripts ausgewertet. Es werden die gleichen Scriptdateien zum Starten und zum Anhalten der Prozesse verwendet. Das ermöglicht es, einen Satz dieser Dateien in dem zentralen Verzeichnis /etc/init.d zu installieren und diese Dateien mit Links auf die entsprechenden Start- und Killscripts in den Verzeichnissen für die einzelnen Runlevel zu verbinden.

Weil es sich um normale Shellprogramme handelt, wird die genaue Arbeitsweise der Scripts nicht weiter erklärt (-> bash).

Das simpleinit   kann mit diesen Initialisierungskaskaden nicht viel anfangen, weil es keine Runlevel unterstützt. Es benutzt die /etc/rc Datei viel direkter, beispielsweise um den bdflush-Dämon  im Hintergrund zu starten oder den cron Dämon aufzurufen. Hier wird auch das Dateisystem montiert, indem das mount -a Kommando aufgerufen wird, und im Dateisystem aufgeräumt, indem überflüssige Dateien gelöscht und die Partitionen gecheckt werden.

Natürlich kann auch das sysvinit mit einem einfachen rc File ohne den ausgefeilten Start/Stop Mechanismus arbeiten. In den aktuellen Distributionen werden die Initialisierungsdateien von Mike Jagdis nicht mitgeliefert.

Um auch beim simpleinit eine gewisse Strukturierung für die doch manchmal sehr umfangreichen Initialisierungen einzuführen, werden aus der zentralen /etc/rc Datei heraus weitere Shellscripts mit speziellen Aufgabenbereichen aufgerufen.

rc.local
Mit diesem Script werden typischerweise lokale Einstellungen, wie zum Beispiel die Festlegung des Systemnamen mit hostname, die Änderung der Tastaturtabelle mit dem loadkeys-Kommando oder die Einstellung der Systemzeit mit clock, vorgenommen.
rc.inet
In älteren Distributionen (vor Kernel 0.99.10) wurden mit dem Script rc.net die TCP/IP Netzwerkfunktionen des Kernels initialisiert und die Netzwerkdämonen gestartet. Seit der Einführung des Net-2 Codes werden stattdessen die Dateien rc.inet1 und rc.inet2 benutzt, mit denen die Kernelinitialisierung und die Dämonenbeschwörung getrennt werden. Eine Beschreibung der TCP/IP Initialisierung würde den Rahmen dieses Handbuches sprengen. Im Anhang sind Hinweise auf andere Bücher enthalten, die dieses Thema erschöpfend behandeln.
rc.serial
Im Zusammenhang mit dem setserial Programm kommt gelegentlich dieses Script zur Initialisierung der seriellen Schnittstellen zum Einsatz. Hier werden die seriellen Gerätetreiber für alle vom Standard abweichenden Konfigurationen initialisiert.



next up previous contents index
Next: Nichts über TCP/IP Up: Das Verzeichnis /etc Previous: /etc/inittab



Linux Anwenderhandbuch -- Copyright 1993, 1994, 1995 S. Hetze, D. Hohndel, O. Kirch, M. Müller