根文件系统/etc下 inittab
/etc 目录存放的是系统程序的主配置文件,因此需要哪些配置文件取决于要运行哪些系统程序。即使最小的系统也一定会运行1号用户进程init,所以我们至少要手 工编写init的主配置文件inittab。busybox的inittab文件的语法、语义与传统的SYSV的inittab有所不同。
inittab 文件中每个条目用来定义一个需要init启动的子进程,并确定它的启动方式,格式 为<id>:<runlevel>:<act
- <id>表示子进程要使用的控制台,若省略则使用与init进程一样的控制台
- <runlevel>表示运行级别,busybox init程序这个字段没有意义
- <act
ion>表示init进程如何控制这个子进程 - sysinit:系统启动后最先执行,只执行一次,init进程等待它结束后才继续执行其它动作
- wait:系统执行完sysinit条目后执行,只执行一次,init进程等待它结束后才继续执行其它动作
- on
ce:系统执行完wait条目后执行,只执行一次,init进程不等待它结束 - respawn:启动完on
ce进程后,init进程监测发现子进程退出时,重新启动它 - askfirst:启动完respawn进程后,与respawn类似,不过init进程先输出” Please press Enter to activate this console“,等用户输入回车后才启动子进程
- shutdown:当系统关机时
- restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init进程接收到SIGUP信号时执行,先重新读取、解析/etc/inittab文件,再执行restart程序
- ctrlaltdel:按下ctrl+alt+del键时执行,不过在串口控制台中无法输入它
- <process>表示进程对应的二进制文件。如果前面有-号,表示该程序是“可以与用户进行交互的”
我们制作最简单的/etc/inittab文件,其内容如下:
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r