赞
踩
系统加载完内核后,会读取inittab文件,然后根据inittab中的内容,进行下一步操作。
在inittab中,首先会执行si::sysinit:/etc/init.d/rcS
etc/init.d/rcS 中会调用 etc/init.d/rc 脚本,
再执行etc/rcS.d etc/rcN.d文件夹中的脚本,
最后执行etc/init.d/rc.local,其实执行的就是etc/rc.local,
所以如果要把一个程序添加到开机自启动项里,有以下几个选择:
1.把启动脚本放在etc/rcS.d文件夹中
2.把启动脚本放在etc/rcN.d文件夹中
3.把启动命令放在etc/rc.local中
正点原子把开机设置IP地址放在/etc/init.d/rcS中是不可取的, rcS文件尽量不要更改!
(2)/etc/inittab文件中每个条目用来定义一个子进程,并确定它的启动方法,格式如下
<id> : <runlevels> : <action> : <process>
<1>id :表示这个子进程要使用的控制台,如果省略,则使用与init进程一样的控制台.
<2>runlevels:这个字段没有意义,可以省略。在linux有意义.
<3>action:表示init进程如何控制这个子进程,具体取值见下表.
<4>process:要执行的程序,它可以是可执行程序,也可以是脚本.如果process字段前有“-”字符,这个程序被称为“交互的”。
【attention】action取值
名称 执行条件 说明
sysinit 系统启动后最先执行 指定初始化脚本路径,只执行一次,init进程等待它结束才继续执行其它动作
wait 系统执行完sysinit进程后 只执行一次,init进程等待它结束才继续执行其它动作
once 系统执行完wait进程后 只执行一次,init进程不等待它结束
respawn 启动完once进程后 init进程监测发现子进程退出时,重新启动它,永不结束.如Shell命令解释器
askfirst 启动完respawn进程后 与respawn类似,不过init进程先输出“Please press Enter to activate this console”, 等用户输入回车后才启动子进程
shutdown 当系统关机时 即重启、关闭系统时执行的程序
restart 系统重启时 init进程重启时执行的程序,通常是init程序本身先重新读取、解析/etc/inittab文件, 再执行restart程序
ctrl+alt+del 按下Ctrl+Alt+Del键时 按Ctrl+Alt+Del组合键时执行的程序
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。