Next: /etc/rc
Up: Das Verzeichnis /etc
Previous: /etc/hosts
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: /etc/rc
Up: Das Verzeichnis /etc
Previous: /etc/hosts