BESCHREIBUNG
Die Datei inittab beschreibt, welche Prozesse beim Booten und während des normalen Betriebs gestartet werden (z. B. /etc/init.d/boot, /etc/init.d/rc, gettys ...). Init(8) unterscheidet mehrere Runlevel, von denen jeder einen eigenen Satz von Prozessen umfasst, die gestartet werden. Gültige Runlevel sind 0-6 plus A, B und C für ondemand-Einträge. Ein Eintrag in der Datei inittab hat folgendes Format:-
ID:Runlevel:Aktion:Prozess
- ID
-
ist eine eindeutige Folge von 1-4 Zeichen zur Identifikation eines Eintrags
in inittab. (Für Versionen von SysVinit, die mit der alten Libc5
(< 5.2.18) oder a.out-Bibliotheken kompiliert wurden, ist das Limit 2
Zeichen).
Hinweis: Traditionell ist für Getty und andere Login-Verfahren der Wert des ID-Felds der gleiche wie die Endung des entsprechenden ttys gehalten, z.B. 1 für tty1. Einige alte Login-Abrechnungsprogramme könnten das voraussetzen, obwohl der Verfasser sich keines vorstellen kann.
- Runlevel
- listet die Runlevel, für die die angegebene Aktion durchgeführt werden soll.
- Aktion
- beschreibt, was getan werden soll.
- Prozess
- gibt an, welcher Prozess ausgeführt werden soll. Wenn das Prozess-Feld mit einem »+«-Zeichen beginnt, führt Init(8) keine utmp- und wtmp-Abrechnung (accounting) für diesen Prozess. Dies ist für Gettys erforderlich, die darauf bestehen, das selber zu erledigen. Dies ist auch ein historischer Fehler. Die Länge dieses Feldes ist auf 127 Zeichen begrenzt.
Das Feld Runlevel kann mehrere Zeichen für verschiedene Runlevel enthalten. Beispielsweise legt 123 fest, dass der Prozess in den Runleveln 1, 2 und 3 gestartet werden soll. Die Runlevel für ondemand-Einträge können A, B oder C enthalten. Das Feld Runlevel der Einträge sysinit, boot und bootwait wird ignoriert.
Bei einem Wechsel des Runlevels des Systems werden alle laufenden Prozesse, die nicht im neuen Runlevel laufen sollen, beendet; zuerst mit SIGTERM, dann mit SIGKILL.
Gültige Einträge für das Aktion-Feld sind:
- respawn
- Der Prozess wird jedesmal, wenn er terminiert, neu gestartet (z.B. getty).
- wait
- Der Prozess wird einmal beim Eintritt in den Runlevel gestartet und Init(8) wartet auf den Abschluss des Prozesses.
- once
- Der Prozess wird einmal während der Initialisierung des Runlevels ausgeführt.
- boot
- Der Prozess wird ausgeführt, während das System hochfährt. Das Feld Runlevel wird ignoriert.
- bootwait
- Der Prozess läuft während des Systemstarts und Init(8) wartet auf seinen Abschluss (z. B. /etc/rc). Das Feld Runlevel wird ignoriert.
- off
- Es wird keine Aktion durchgeführt.
- ondemand
- Ein mit ondemand gekennzeichneter Prozess wird jedesmal ausgeführt, wenn das angegebene ondemand-Runlevel aufgerufen wird. Es erfolgt aber kein Wechsel des Runlevels. (Die ondemand-Runlevel sind »a«, »b« und »c«.)
- initdefault
- Ein initdefault-Eintrag legt den Runlevel nach dem Systemstart fest. Fehlt dieser Eintrag, wird init(8) auf der Konsole nach dem Runlevel fragen. Das Prozess-Feld wird ignoriert.
- sysinit
- Dieser Prozess läuft beim Systemstart vor den boot- und bootwait-Einträgen. Das Feld Runlevel wird ignoriert.
- powerwait
- Dieser Prozess wird ausgeführt, wenn die Spannung der Stromversorgung sinkt. Init(8) wird üblicherweise von einem Prozess informiert, der mit der USV kommuniziert. Init(8) wartet das Ende dieses Prozesses ab, bevor es weiter macht.
- powerfail
- Wie powerwait; Init(8) wartet aber nicht auf den Abschluss dieses Prozesses.
- powerokwait
- Dieser Prozess wird ausgeführt, sobald Init(8) erfährt, dass die Spannungsversorgung wieder normal funktioniert.
- powerfailnow
- Dieser Prozess wird ausgeführt, wenn init(8) erfährt, dass die Batterie der externen USV fast leer ist und ein Stromausfall droht. Voraussetzung ist natürlich, dass USV und Überwachungsprozess diesen Zustand erkennen können.
- ctrlaltdel
- Der Prozess wird ausgeführt, wenn Init(8) das Signal SIGINT erhält. Dies bedeutet, dass jemand auf der System-Konsole die Tastenkombination STRG-ALT-ENTF eingegeben hat. Normalerweise will man eine Art von Shutdown ausführen; entweder in den Single-User-Runlevel wechseln oder den Rechner neu starten.
- kbrequest
-
Der Prozess wird ausgeführt, wenn der Tastatur-Handler Init(8)
signalisiert, das auf der Tastatur der Konsole eine bestimmte
Tastenkombination eingegeben wurde.
Die Dokumentation für diese Funktion ist noch nicht vollständig. Zusätzliche Dokumentation finden Sie in den kbd-x.xx-Paketen (das aktuellste war beim Schreiben dieser Handbuchseite kbd-0.94). Wahrscheinlich möchten Sie der »KeyboardSignal«-Aktion eine Tastenkombinationen zuordnen. Um beispielsweise die Kombination »Alt Aufwärtspfeil« zu verwenden, tragen Sie in Ihre keymaps-Datei ein:
-
alt keycode 103 = KeyboardSignal
-
BEISPIELE
Dies ist ein Beispiel für eine inittab, die der alten Linux-inittab ähnelt:-
# inittab für Linux id:1:initdefault: rc::bootwait:/etc/rc 1:1:respawn:/etc/getty 9600 tty1 2:1:respawn:/etc/getty 9600 tty2 3:1:respawn:/etc/getty 9600 tty3 4:1:respawn:/etc/getty 9600 tty4
Eine ausgefeiltere inittab mit verschiedenen Runleveln (siehe die innenstehenden Kommentare):
-
# Standard-Runlevel id:2:initdefault: # Skript für Konfiguration/Initialisierung während # des Systemstarts si::sysinit:/etc/init.d/rcS # Das läuft im Single-User-Modus. ~:S:wait:/sbin/sulogin # /etc/init.d führt beim Wechsel des Runlevel die # S- und K-Skripte aus. # # Runlevel 0 ist Halt. # Runlevel 1 ist der Single-User-Betrieb. # Runlevel 2-5 sind Mehrbenutzer-Modi. # Runlevel 6 ist der Neustart (Reboot). l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Was wird beim »Affengriff« getan? ca::ctrlaltdel:/sbin/shutdown -t1 -h now # Runlevel 2,3: Getty auf virtuellen Konsolen # Runlevel 3: Getty auf Terminal (ttyS0) und Modem (ttyS1) 1:23:respawn:/sbin/getty tty1 VC linux 2:23:respawn:/sbin/getty tty2 VC linux 3:23:respawn:/sbin/getty tty3 VC linux 4:23:respawn:/sbin/getty tty4 VC linux S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320 S1:3:respawn:/sbin/mgetty -x0 -D ttyS1
DATEIEN
/etc/inittabAUTOR
Der Autor von Init(8) ist Miquel van Smoorenburg ([email protected]). Diese Handbuchseite wurde von Sebastian Lederer ([email protected]) geschrieben und von Michael Haardt ([email protected]) überarbeitet.ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <[email protected]> erstellt.Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <[email protected]>.