busybox init学习,busybox 的init跟system V init还是有点不一样的。(现在linux所搭载的init包括system V, upstart,systemd,以及android的init,每种都
有它的特点)
busybox init 会解析inittab文件,对应的process是串行执行的,不像upstart/systemd等是可以做到并行执行的
一、inittab 文件分析(对应代码 busybox init.c)
<id>:<runlevels>:<action>:<process>
id: 表示子进程(process)要使用的控制台,缺省的话,表示使用与init相同的控制台
runlevels : system V init的运行级别,该级别对于busybox init用处不是很大,可缺省
action : init进程如何处理子进程
执行顺序
1、sysinit : init最先启动的子进程,只执行一次,init进程等待它结束后才继续执行其他action
2、wait : sysinit执行完之后才执行该action,init进程等待它结束后才继续执行其他action
3、once : wait执行完之后执行该action,init进程不等待该进程结束
4、respawn : once执行完之后,init进程会检测子进程是否退出,退出会重启它
5、askfirst : 要等用户输入回车后才会启动子进程,init进程会检测子进程是否退出,退出会重启它
restart : 当init进程接收到 SIG
有它的特点)
busybox init 会解析inittab文件,对应的process是串行执行的,不像upstart/systemd等是可以做到并行执行的
一、inittab 文件分析(对应代码 busybox init.c)
<id>:<runlevels>:<action>:<process>
id: 表示子进程(process)要使用的控制台,缺省的话,表示使用与init相同的控制台
runlevels : system V init的运行级别,该级别对于busybox init用处不是很大,可缺省
action : init进程如何处理子进程
执行顺序
1、sysinit : init最先启动的子进程,只执行一次,init进程等待它结束后才继续执行其他action
2、wait : sysinit执行完之后才执行该action,init进程等待它结束后才继续执行其他action
3、once : wait执行完之后执行该action,init进程不等待该进程结束
4、respawn : once执行完之后,init进程会检测子进程是否退出,退出会重启它
5、askfirst : 要等用户输入回车后才会启动子进程,init进程会检测子进程是否退出,退出会重启它
restart : 当init进程接收到 SIG