
當核心載入後執行 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的執行順序從runlevel
1開始就是:
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,您應該獲得該文件的所有選項的清單。