首页 » 启动Linux

/etc/inittab

文件格式

init进程根据/etc/inittab文件执行启动工作。

/etc/inittab中的每一行就是一个登记项()。登记项的格式:

id:runlevels:action:process

例如/etc/initab中的第一个登记项通常是:

id:3:initdefault:

这行配置设定了系统的默认运行级别。在/etc/inittab解释了所有的运行级别:

#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)

运行级别(runlevel)说明:

运行级别说明
0执行关机。
1单用户模式。
2多用户模式,但不带网络。
3多用户模式。
4没有用。
5启动X11。
6重启。

从这里可见,init除了负责系统初始化工作,还负责重启、关机、单用户回复模式等。运行级别中的0、1、6是通用的,其他模式在不同发行版中则可能有所不同。

再回头看/etc/inittab登记项的格式:

id:runlevels:action:process
  • id - 登记项标识符,最多为4个字符,唯一标识/etc/inittab中的每个登记项(其实对init而言没有任何作用)。
  • runlevels - 运行级别。
  • action - 要执行的动作。
    • boot - 只在系统引导过程中执行。不等待进程结束;若进程死亡,也不重启该进程。
    • bootwait - 类似boot,但init需要等待进程结束。
    • respawn - 如果进程不存在,init就启动之,并不等待该进程结束;若该进程死亡,则重启该进程。
  • process - 进程。

启动细节

/etc/inittab中第二个登记项是启动系统初始化脚本

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

随后是通过rc程序运行各个运行级别中的具体服务:

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

接下来定义了Ctrl-Alt-Del组合键操作:

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

电源配置。如果接通了UPS,则在2分钟后关机;如果在关机前回复了电源连接,则取消关机。

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.  
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

然后是初始化虚拟终端。默认会在tty[1-6]开启6个getty,显示终端登录提示。

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

最后是启动X系统(也就是通常所谓的GUI)。只有运行在级别5才会运行X系统。

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon

/etc/rc.d/rc.sysinit

/etc/rc.d/rc.sysinit的主要作用:获取网络环境与主机类型;测试与载入内存设备、USB设备;决定是否启动SELinux;接口设备的检测与即插即用(PnP)参数的测试;用户自定义模块的加载等。

分享

0