next up previous contents index
Next: /etc/rc Up: Das Verzeichnis /etc Previous: /etc/hosts

/etc/inittab

    

Die Datei /etc/inittab wird vom init Programm benutzt, das die darin festgelegten Prozesse startet und so das Benutzersystem initialisiert.

Es gibt mehrere Versionen des init Programms, die sich erheblich voneinander unterscheiden.

In der inittab Datei für das einfache init ( simpleinit)   von Peter Orbaek besteht jede Zeile aus drei durch Doppelpunkt getrennten Einträgen.

Terminal: Termcapeintrag: Gettykommando

Der erste Eintrag bezeichnet das Terminal ( tty1, tty2, ttyS1 ...), wie es in die /etc/utmp Datenbank eingetragen und wie es vom who Kommando angezeigt wird. Der zweite Eintrag wird automatisch in die TERM Umgebungsvariable der auf dem entsprechenden Terminal gestarteten Shell geschrieben und sollte deshalb mit einem Eintrag in der /etc/termcap Datei übereinstimmen.

Der dritte Eintrag schließlich ist die Kommandozeile, mit der das getty-Kommando für das Terminal aufgerufen werden muß. Da es auch vom getty-Programm verschiedene Versionen gibt, sollte das entsprechende Format am besten der Beschreibung dieses getty entnommen werden.

  Das System 5 kompatible init ( sysvinit)   Programm von Mike Jagdis hat im Prinzip auch die Aufgabe, die getty Prozesse für die virtuellen Terminals zu erzeugen und immer neu zu starten. Es bietet aber noch weitere, sehr flexible Möglichkeiten der Systeminitialisierung.

Die Einträge für die inittab sehen hier grundsätzlich anders aus. Jede Zeile, die nicht mit einem `#' (Kommentar) beginnt, ist ein Datensatz mit vier durch Doppelpunkt voneinander getrennten Einträgen.

ID: Runlevel: Aktion: Prozeß

Der erste Eintrag ist eine zweistellige Zeichenkette als Bezeichner für die Zeile.

Im zweiten Eintrag werden die Runlevel festgelegt, für die eine Zeile gültig ist. Die Runlevel werden mit Ziffern von 0 bis 9 und mit allen Buchstaben (ohne Unterscheidung zwischen Groß und Kleinschreibung) bezeichnet. Es können auch mehrere Runlevel in einer Zeile angegeben werden. Bei den Buchstabenkennungen für die Level steht S für den Einbenutzermodus, Q für Quit zum Neueinlesen der inittab. Die anderen Buchstaben werden für ondemand Aufrufe verwendet, bei denen ein Kommando beim Moduswechsel nicht mehr abgebrochen wird.

Wenn das Feld für den Runlevel leer ist, wird die Aktion bei jedem Moduswechsel ausgeführt.

Im dritten Eintrag wird bestimmt, welche Aktion von init ausgeführt wird:

initdefault
Das zweite Feld dieser Zeile bestimmt den Runlevel beim Systemstart. Dieser Eintrag kann mit der Datei /etc/initrunlvl oder durch einen entsprechenden Parameter auf der Kommandozeile (wie er z. B. von LILO übergeben wird) verdeckt werden. Wenn keine Zeile mit initdefault in der inittab vorkommt, wird das System im Einbenutzermodus gestartet. 
sysinit
Das Kommando im vierten Feld dieser Zeile wird einmal unmittelbar nach dem Systemstart ausgeführt, noch bevor irgendein Anwender Zugang zum System erhält, also auch vor dem Einbenutzermodus.
bootwait
Das Kommando dieser Zeile wird einmal ausgeführt, wenn in einem Mehrbenutzermodus gestartet oder vom Einbenutzermodus dorthin gewechselt wird. Das init Programm wartet mit der Bearbeitung weiterer Zeilen in der inittab, bis das in dieser Zeile aufgerufenen Kommando beendet ist.
boot
Das Kommando im vierten Feld dieser Zeile wird wie bei bootwait ausgeführt, jedoch wird sofort mit der Bearbeitung der inittab fortgefahren, ohne auf die Beendigung des Kommandos zu warten.
respawn
Das Kommando im vierten Feld dieser Zeile wird beim Übergang in einen im zweiten Feld aufgeführten Modus gestartet (wenn es nicht bereits läuft), und es wird jedesmal neu gestartet, wenn es beendet wurde. Das bedeutet, daß init jedes mit respawn gestartete Kommando dauernd überwacht. Wenn das Kommando normal beendet oder während der Laufzeit durch ein Signal terminiert wird, wird es sofort wieder neu gestartet. Wenn das Kommando aufgrund eines Fehlers unmittelbar nach dem Start abbricht, gibt init das Kommando nach einer bestimmten Anzahl von Versuchen auf.
ondemand
hat die gleiche Funktionalität wie respawn und wird benutzt, um im Zusammenhang mit den durch Buchstaben gekennzeichneten Leveln einzelne Kommandos äuf Anfrageßu starten.
wait
Das Kommando in dieser Zeile wird beim Übergang in einen im zweiten Feld aufgeführten Modus ausgeführt und mit der Bearbeitung weiterer Zeilen der inittab gewartet, bis das Kommando beendet wurde.
once
Das Kommando im vierten Feld dieser Zeile wird beim Übergang in einen passenden Modus einmal aufgerufen. Auf die Beendigung wird nicht gewartet.
off
Wenn das Kommando im vierten Feld läuft, wird es angehalten, sonst wird der Eintrag ignoriert.
update
Das init Programm übernimmt selbst die Funktion des traditionellen update-Dämons. Im vierten Feld wird angegeben, in welchem Zeitintervall (in Sekunden) der sync Systemaufruf ausgeführt werden soll. Die update Funktion wird erst nach sysinit gestartet, so daß von sysinit beispielsweise das Rootfilesystem geprüft und repariert werden kann.

Für die Kernel ab Version 1.1 ist diese Funktion vom sysvinit unzureichend, weil sie nicht mit der neuen bdflush(2) Kernelfunktion zusammenarbeitet. Stattdessen muß der Dämon wie das traditionelle update aus einer rc-Datei gestartet werden.

runlevel
Mit der runlevel Aktion wird einem Runlevel, der im zweiten Feld angegeben wird, ein Name zugeordnet, der im vierten Feld angegeben wird. Mit diesem Namen kann der entsprechende Runlevel dann mit dem telinit-Kommando anstelle der Nummer bzw. Buchstabenkennung aufgerufen werden.



next up previous contents index
Next: /etc/rc Up: Das Verzeichnis /etc Previous: /etc/hosts



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