当内核加载后执行 init 进程时,它是否以自顶向下的方式读取 /etc/inittab 文件,即它执行文件中出现的每一行。
如果是这样并且根据我的阅读和理解,这是否意味着它进入记录的运行级别然后启动 sysinit 进程,反之亦然?
例如我见过的常见例子是
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
Run Code Online (Sandbox Code Playgroud)
小智 5
首先,请注意的格式inittab是这样的:
Identifier:RunLevel:Action:Command
Run Code Online (Sandbox Code Playgroud)
这里的关键点是runlevel. 给出以下示例代码:
a:3::
b:123::
c:23::
d:123::
e:23::
Run Code Online (Sandbox Code Playgroud)
然后,从runlevel1开始的各种 ID 的执行顺序将是:
init 1: b d
init 2: c e
init 3: a
overall: b d c e a
Run Code Online (Sandbox Code Playgroud)
如您所见,它将按照文件中列出的顺序运行它们,按运行级别分组!还请记住,如果标识符不在指定的运行级别中,则会发出 aSIGTERM和 a SIGKILL。