/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

如你所见,它将按照文件中列出的顺序运行它们,按运行级别分组!另外请记住,如果标识符不在指定的运行级别中,它将发出一个SIGTERM,然后发出一个SIGKILL

答案2

它不是按任何特定顺序处理的脚本。它是一个配置文件,用于告诉系统针对特定事件或运行级别运行哪些脚本/命令。文件中条目的顺序没有区别,并且每个运行级别可以有多个脚本或命令。

第一行显示“id:3:initdefault:”告诉系统大多数情况下的默认运行级别为 3 => 多用户模式。

“si::sysinit:...”行告诉系统在系统初始化时(系统启动时运行)运行脚本 /etc/rc.d/rc/sysinit。

如果您使用 man inittab,您应该会得到该文件的所有选项的列表。

相关内容