/etc/inittab 檔案是自上而下讀取的嗎?

/etc/inittab 檔案是自上而下讀取的嗎?

當核心載入後執行 init 進程時,它是否以自上而下的方式讀取 /etc/inittab 文件,即執行檔中出現的每一行。

如果是這樣,並且根據我的閱讀和理解,這是否意味著它進入記錄的運行級別,然後啟動 sysinit 進程,反之亦然?

例如我見過的常見例子是

id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

答案1

首先,請注意 的格式inittab如下:

Identifier:RunLevel:Action:Command

這裡的關鍵點是runlevel.給出以下範例程式碼:

a:3::
b:123::
c:23::
d:123::
e:23::

那麼各ID的執行順序從runlevel1開始就是:

init 1:  b d
init 2:  c e
init 3:  a
overall: b d c e a

正如您所看到的,它將按照文件中列出的順序運行它們,按運行等級分組!請同時記住,如果識別碼不在指定的運行層級中,則會發出 a SIGTERM,然後發出 a SIGKILL

答案2

它不是按任何特定順序處理的腳本。它是一個配置文件,告訴系統針對特定事件或運行級別運行哪些腳本/命令。文件中條目的順序沒有區別,並且每個運行等級可以有多個腳本或命令。

您顯示的第一行「id:3:initdefault:」告訴系統預設運作等級是 3 => 大多數風格的多使用者模式。

「si::sysinit:...」行告訴系統在系統初始化時執行腳本 /etc/rc.d/rc/sysinit(在系統引導時執行)。

如果您執行 inittab,您應該獲得該文件的所有選項的清單。

相關內容