
Wenn der Init-Prozess ausgeführt wird, nachdem der Kernel geladen wurde, liest er die Datei /etc/inittab in einem Top-down-Ansatz, d. h. er führt jede Zeile so aus, wie sie in der Datei erscheint.
Wenn ja, und basierend auf meiner Lektüre und meinem Verständnis, bedeutet dies, dass es in den dokumentierten Runlevel wechselt und dann den Sysinit-Prozess startet oder umgekehrt?
Die häufigsten Beispiele, die ich gesehen habe, sind
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
Antwort1
Beachten Sie zunächst, dass das Format inittab
wie folgt aussieht:
Identifier:RunLevel:Action:Command
Der entscheidende Punkt ist hier das runlevel
. Gegeben sei der folgende Beispielcode:
a:3::
b:123::
c:23::
d:123::
e:23::
runlevel
Dann wäre die Ausführungsreihenfolge der verschiedenen IDs, beginnend bei 1, folgende:
init 1: b d
init 2: c e
init 3: a
overall: b d c e a
Wie Sie sehen, werden sie in der Reihenfolge ausgeführt, in der sie in der Datei aufgeführt sind.Gruppieren nach RunlevelSIGTERM
! Denken Sie auch daran, dass, wenn sich der Bezeichner nicht im angegebenen Runlevel befindet, ein und dann ein ausgegeben wird SIGKILL
.
Antwort2
Es handelt sich nicht um ein Skript, das in einer bestimmten Reihenfolge ausgeführt wird. Es handelt sich um eine Konfigurationsdatei, die dem System mitteilt, welche Skripts/Befehle für ein bestimmtes Ereignis oder eine bestimmte Ausführungsebene ausgeführt werden sollen. Die Reihenfolge der Einträge in der Datei spielt keine Rolle, und Sie können für jede Ausführungsebene mehrere Skripts oder Befehle haben.
Die erste angezeigte Zeile „id:3:initdefault:“ teilt dem System mit, dass der Standard-Runlevel 3 ist => Mehrbenutzermodus für die meisten Varianten.
die Zeile „si::sysinit:...“ weist das System an, das Skript /etc/rc.d/rc/sysinit bei der Systeminitialisierung auszuführen (wird ausgeführt, wenn das System bootet).
Wenn Sie man inittab verwenden, sollten Sie eine Liste aller Optionen für die Datei erhalten.