接触过了几款嵌入式linux 机子,每个机子里都有个叫开机启动脚本的文件,在后续添加开机启动程序时总是不断地追加在这个文件里。此为知其然不知其所以然,究竟是谁决定了这个开机启动文件?
一路追本溯源,找到了/etc/inittab 这个文件,搜索到::sysinit:xxxx 这么个地方,这里的xxxx就值代了开机启动的脚本,于是搜了一把,从以下两篇文章中找到这个文件的作用
http://www.xshell.net/linux/inittab_rc.html
http://blog.csdn.net/wxlkeepmoving/article/details/6636547
具体的为,linux在引导完内核后,会跳到用户态去执行/sbin/init程序,而/etc/inittab是这个程序的执行清单,其中sysinit可以理解为开机就会去执行的标志,后面的xxxx是我们定义的开机启动文件。
抄了些用得着的:
wait:init应该运行这个进程一次,并等待其结束后再进行下一步操作。
once:init需要运行这个进程一次。
boot:随系统启动运行,所以runlevel值对其无效。
bootwait:随系统启动运行,并且init应该等待其结束。
off:没有任何意义。
initdefault:系统启动后的默认运行级别;由于进入相应的运行级别会激活对应级别的进程,所以对其指定process字段没有任何意义。如果inittab文件内不存在这一条记录,系统启动时在控制台上询问进入的运行级。
sysin