当您使用 init 或 shutdown 命令引导系统或更改运行级别时,init 守护进程会通过从 /etc/inittab 文件中读取信息来启动进程。此文件为 init 进程定义以下重要的项:
init 进程将重新启动的项
在终止时要启动、监视和重新启动的进程
在系统进入新运行级别时执行的操作
/etc/inittab 文件中的每一项都具有以下字段:
id:rstate :action:process
表 18–4 inittab 文件的字段说明
字段 |
说明 |
---|---|
id |
项的唯一标识符。 |
rstate |
列出此项适用的运行级别。 |
action |
标识如何运行在进程字段中指定的进程。可能的值包括: sysinit、boot、 bootwait、wait 和 respawn。 有关其他操作关键字的说明,请参见 inittab(4)。 |
process |
定义要执行的命令或脚本。 |
以下示例显示了随 Solaris 发行版一同安装的缺省 inittab 文件。后面是该示例中每个输出行的说明。
ap::sysinit:/sbin/autopush -f /etc/iu.ap (1) sp::sysinit:/sbin/soconfig -f /etc/sock2path (2) smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog (3) p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/...(4) |
初始化 STREAMS 模块
配置套接字传输提供器
初始化 SMF 的主重新启动器
描述因电源故障而造成的关机
init 进程将启动,并读取 /etc/default/init 文件以设置任何环境变量。缺省情况下,仅设置 TIMEZONE 变量。
然后,init 读取 inittab 文件并执行下列操作:
执行 action 字段中包含 sysinit 的所有进程项,以便在用户登录之前执行所有特殊的初始化。
将启动活动传递到 svc.startd。
有关 init 进程如何使用 inittab 文件的详细说明,请参见 init(1M)。