Linux在完成核内引导以后, 就开始运行init程序;
init程序需要读取配置文件/etc/inittab;
inittab中的配置项格式:
label:runlevel:action:process
其中,
label, 1-4字符的标签, 用来标示输入的值;
runlevel, 用来表示在init进程结束之后的系统状态; 系统状态范围0-6;
action, 定义了该进程应该运行在何种状态下;
boot: 在系统启动时运行, 忽略runlevel;
bootwait: 在系统启动时运行,init等待进程完成。忽略runlevel;
ctrlaltdel: 当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略runlevel;
initdefault: 不要执行这个进程,它用于设置默认runlevel;
kbrequest: 当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档);
off: 禁止进入,因此该进程不运行;
once: 每一个runlevel级别运行一次;
ondemand: 当系统指定特定的运行级别A、B、C时运行;
powerfail: 当init收到SIGPWR信号时运行;
powerokwait: 当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行;
powerwait: 当收到SIGPWD信号,并且init等待进程结束时运行;
respawn: 不管何时终止都重新启动进程;
sysinit: 在运行boot或bootwait进程之前运行;
wait: 运行进程等待输入运行模式;
例如:
3:2345:respawn:/sbin/mingetty tty3
标签字段的值是3, 3是设备tty3的数字后缀, tty3与相应的进程相关联,
该getty进程可以启动的runlevel是2、3、4和5, 当该进程终止时, init马上就重新启动它.
启动进程的路径名是/sbin/mingetty, 该进程是实现虚拟终端支持的最小版本的getty, 为tty3提供启动虚拟设备的进程.
si::sysinit:/etc/rc.d/rc.sysinit
该值告诉init程序运行/etc/rc.d/rc.sysinit脚本文件来初始化系统, 该脚本文件与所有启动的脚本类似,
它只是一个包含Linux的shell命令的可执行文件, 注意输入的字符串必须包括该脚本的完整路径.
不同版本的Linux存放该脚本的位置也不相同, 但不用刻意去记忆这些位置, 只需查看/etc/inittab文件即可, 该文件中包含启动脚本文件的确切位置.
参考文章
http://www.2cto.com/os/201108/98426.html
http://blog.sina.com.cn/s/blog_4c4fcd6601016jmf.html
http://wenku.baidu.com/link?url=agrWYdU3XHOCKqwrja1GOGDYBRhlzn9VUOYzA_8K7Zc6W9WDuFEFCkoublxAlsET0JPb6MjhOcUOeWH2k0g6gwvbiMj750ECHPjmieKPGgi
http://www.cnblogs.com/zhuhongbao/archive/2011/05/26/2059206.html