inittab File

Zweck

Steuert den Initialisierungsprozess.

Beschreibung

Die Datei /etc/inittab stellt das Script für die Rolle des Befehls init als allgemeinen Prozessdispatcher bereit. Der Prozess, der die Mehrheit der Prozesszuteilungsaktivitäten des Befehls init darstellt, ist der Zeilenprozess /etc/getty , der einzelne Terminalzeilen einleitet. Bei den anderen Prozesse, die gewöhnlich vom Befehl init gestartet werden, handelt es sich um Dämonprozesse und um die Shell.

Die Datei /etc/inittab setzt sich aus positionsabhängigen Einträgen im folgenden Format zusammen:

Identifier:RunLevel:Action:Command
Anmerkung: Doppelpunkt (:) wird als Begrenzer und als Kommentarzeichen verwendet. Um einen inittab -Eintrag auszukommentieren, fügen Sie : am Anfang des Eintrags hinzu. Beispiel:
:Identifier:RunLevel:Action:Command

Jeder Eintrag wird durch ein Zeilenvorschubzeichen begrenzt. Ein Backslash (\) vor einem Zeilenvorschubzeichen gibt die Fortsetzung eines Eintrags an. Es gibt keine Grenzwerte (außer der maximalen Eintragsgröße) für die Anzahl der Einträge in der Datei /etc/inittab . Die maximale Eintragsgröße beträgt 1024 Zeichen. Die Eingabefelder sind:

Kennung
Eine Zeichenfolge (ein oder mehrere Zeichen), die ein Objekt eindeutig identifiziert.
RunLevel
Die Ausführungsebene, in der dieser Eintrag verarbeitet werden kann. Ausführungsebenen entsprechen effektiv einer Konfiguration von Prozessen im System. Jedem durch den Befehl Initialisierung gestarteten Prozess wird mindestens eine Ausführungsebene zugeordnet, in der er vorhanden sein kann. Ausführungsebenen werden durch die Zahlen 0 bis 9 dargestellt. Wenn sich das System beispielsweise auf Ausführungsebene 1 befindet, werden nur die Einträge mit einer 1 im Feld Ausführungsebene gestartet. Wenn Sie den Befehl Initialisierung anfordern, um Ausführungsebenen zu ändern, erhalten alle Prozesse ohne Eintrag im Feld Ausführungsebene für die Zielausführungsebene ein Warnsignal (SIGTERM). Es gibt eine Karenzzeit von 20 Sekunden, bevor Prozesse durch das Abbruchsignal (ANMELDUNG) zwangsweise beendet werden. Das Feld Ausführungsebene kann mehrere Ausführungsebenen für einen Prozess definieren, indem mehrere Ausführungsebenen in einer beliebigen Kombination von 0 bis 9 ausgewählt werden. Wird keine Ausführungsebene angegeben, wird angenommen, dass der Prozess auf allen Ausführungsebenen gültig ist.

Es gibt drei weitere Werte, die im Feld Ausführungsebene angezeigt werden, auch wenn sie nicht wahr sind: A, Bund C. Einträge mit diesen Zeichen im Feld Ausführungsebene werden nur verarbeitet, wenn der Befehl Telinit ihre Ausführung anfordert (unabhängig von der aktuellen Ausführungsebene des Systems). Sie unterscheiden sich von Ausführungsebenen dadurch, dass der Befehl Initialisierung niemals die Ausführungsebene A, Boder Ceingeben kann. Außerdem ändert eine Anforderung zur Ausführung eines dieser Prozesse nicht die aktuelle Ausführungsebene. Außerdem wird ein Prozess, der von einem Befehl A, Boder C gestartet wird, nicht abgebrochen, wenn der Befehl Initialisierung die Ebene ändert. Sie werden nur beendet, wenn ihre Zeile in der Datei /etc/inittab im Feld action markiert ist, ihre Zeile vollständig aus /etc/inittabgelöscht wird oder der Befehl init in den Einzelbenutzermodus wechselt.

Aktion
Teilt dem Initialisierung -Befehl mit, wie der im Feld Kennung angegebene Prozess behandelt werden soll Die folgenden Aktionen werden vom Befehl Initialisierung erkannt:
generieren
Wenn der Prozess nicht vorhanden ist, starten Sie ihn. Warten Sie nicht auf ihre Beendigung (fahren Sie mit dem Scannen der Datei /etc/inittab fort). Starten Sie den Prozess nach seiner Beendigung erneut. Wenn der Prozess vorhanden ist, führen Sie keine Aktion aus und fahren Sie mit dem Scannen der Datei /etc/inittab fort.
wait
Wenn der Befehl Initialisierung in die Ausführungsebene eintritt, die der Ausführungsebene des Eintrags entspricht, starten Sie den Prozess und warten auf seine Beendigung. Alle nachfolgenden Lesevorgänge in der Datei /etc/inittab , während der Befehl init auf derselben Ausführungsebene ausgeführt wird, führen dazu, dass der Befehl init diesen Eintrag ignoriert.
Einmal
Wenn der Initialisierung -Befehl eine Ausführungsebene eingibt, die der Ausführungsebene des Eintrags entspricht, starten Sie den Prozess und warten Sie nicht auf seine Beendigung. Wenn er stirbt, starten Sie den Prozess nicht erneut. Wenn das System eine neue Ausführungsebene erreicht und der Prozess nach einer vorherigen Änderung der Ausführungsebene noch ausgeführt wird, wird das Programm nicht erneut gestartet. Alle nachfolgenden Lesevorgänge in der Datei /etc/inittab , während der Befehl init auf derselben Ausführungsebene ausgeführt wird, führen dazu, dass der Befehl init diesen Eintrag ignoriert.
boot
Der Eintrag wird nur beim Systemboot verarbeitet, wenn der Befehl init beim Systemstart die Datei /etc/inittab liest. Starten Sie den Prozess, warten Sie nicht auf seine Beendigung, und starten Sie den Prozess nicht erneut, wenn er beendet wird. Damit die Anweisung aussagekräftig ist, sollte die Ausführungsebene die Standardeinstellung sein oder mit der Ausführungsebene des Initialisierung -Befehls zum Zeitpunkt des Bootvorgangs übereinstimmen. Diese Aktion ist nützlich für eine Initialisierungsfunktion nach einem Hardwarewarmstart des Systems.
Bootwait
Verarbeiten Sie den Eintrag, wenn der Befehl Initialisierung nach dem Booten des Systems zum ersten Mal vom Einzelbenutzerstatus in den Mehrbenutzerstatus wechselt. Starten Sie den Prozess, warten Sie auf seine Beendigung und starten Sie den Prozess nicht erneut, wenn er beendet wird. Wenn der initdefault 2 ist, führen Sie den Prozess direkt nach dem Booten aus.
Stromausfall
Führen Sie den Prozess, der diesem Eintrag zugeordnet ist, nur aus, wenn der Befehl Initialisierung ein Signal für einen Stromausfall (SIGPWR) empfängt.
PowerWait
Führen Sie den diesem Eintrag zugeordneten Prozess nur aus, wenn der Befehl init ein Signal für Stromausfall (SIGPWR) empfängt, und warten Sie, bis er beendet ist, bevor Sie mit der Verarbeitung der Datei /etc/inittab fortfahren.
Aus
Wenn der diesem Eintrag zugeordnete Prozess momentan aktiv ist, senden Sie das Warnsignal (SIGTERM) und warten Sie 20 Sekunden, bevor Sie den Prozess mit dem Beendigungssignal (ANMELDUNG) beenden. Wenn der Prozess nicht aktiv ist, ignorieren Sie diesen Eintrag.
On Demand
Funktional identisch mit Respawn, außer dass diese Aktion für die Werte A, Boder C gilt, nicht für Ausführungsebenen.
initdefault
Ein Eintrag mit dieser Aktion wird nur gescannt, wenn der Befehl Initialisierung anfänglich aufgerufen wird. Der Befehl Initialisierung verwendet diesen Eintrag, falls er vorhanden ist, um festzustellen, welche Ausführungsebene anfänglich eingegeben werden muss. Dazu wird die höchste Ausführungsstufe, die im Feld Ausführungsebene angegeben ist, als Anfangsstatus verwendet. Wenn das Feld Ausführungsebene leer ist, wird dies als 0123456789 interpretiert; daher gibt der Befehl Initialisierung die Ausführungsebene 9 ein. Wenn der Befehl init keinen Eintrag initdefault in der Datei /etc/inittab findet, fordert er außerdem beim Booten eine anfängliche Ausführungsebene vom Benutzer an.
Sysinit
Einträge dieses Typs werden ausgeführt, bevor der Befehl Initialisierung versucht, vor der Anmeldung auf die Konsole zuzugreifen. Es wird erwartet, dass dieser Eintrag nur zum Initialisieren von Einheiten verwendet wird, auf denen der Befehl Initialisierung versucht, die Frage auf Ausführungsebene zu stellen. Diese Einträge werden ausgeführt und auf sie gewartet, bevor Sie fortfahren.
Befehl
Ein auszuführender Shellbefehl. Das gesamte Feld Befehl hat das Präfixexecund an eine gegabelteshassh -c exec command. Alle rechtlichenshin diesem Feld angezeigt werden. Kommentare können mit der Kommentarsyntax # eingefügt werden.

Der Befehl Getty überschreibt die Ausgabe aller Befehle, die in der Datei inittab davor angezeigt werden. Um die Ausgabe dieser Befehle im Bootprotokoll aufzuzeichnen, leiten Sie ihre Ausgabe über eine Pipe an den Befehl alog -tboot weiter.

Die Dateideskriptoren 'stdin', 'stdout' und 'stdferr ' sind möglicherweise nicht verfügbar, während Initialisierung Einträge inittab verarbeitet. Einträge, die in stdout oder stderr schreiben, funktionieren möglicherweise nicht vorhersehbar, es sei denn, sie leiten ihre Ausgabe in eine Datei oder in /dev/consoleum.

Die folgenden Befehle sind die einzige unterstützte Methode zum Ändern der Datensätze in der Datei /etc/inittab :

Befehl Zweck
Chitab Ändert Datensätze in der Datei /etc/inittab.
lsitab Listet Datensätze in der Datei /etc/inittab auf.
mkitab Fügt Datensätze zur /etc/inittab -Datei hinzu.
RMItab Entfernt Datensätze aus der Datei /etc/inittab .

Beispiele

  1. So starten Sie dieidentProzess auf allen Ausführungsebenen, geben Sie Folgendes ein:
    ident:0123456789:Action:Command
  2. So starten Sie dieidentProzess nur auf Ausführungsebene 2, geben Sie Folgendes ein:
    ident:2:Action:Command
  3. Zum Inaktivieren der Ausführungsebenen 0, 3, 6-9 für dieidentProzess eingeben:
    ident:1245:Action:Command
  4. Geben Sie Folgendes ein, um den Befehl RC auf Ausführungsebene 2 zu starten und seine Ausgabe an das Bootprotokoll zu senden:
    rc:2:wait:/etc/rc 2>&1 | alog -tboot > 
    /dev/console

Dateien

Element Beschreibung
/etc/inittab Gibt den Pfad der Datei inittab an.
/usr/sbin/getty Gibt Terminalleitungen an