标签:文件格式 vat sbin linu 环境 wait 令行 根据 用户态
一、inittab文件背景
(1)init进程的作用
使用uboot下载Linux内核时,环境变量bootargs决定了kernel向根文件系统传递的参数,这些参数包括
bootargs=noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
(2)linuxrc文件的作用
(3)/etc/inittab文件的作用
从上可知,init进程,或者说linuxrc程序最后会解析inittab文件.inittab,可以理解为init table(初始化表),它只是一个普通文件,但系统会根据/etc/inittab的内容启动相关进程或脚本.
二、inittab文件格式
(1)如果存在/etc/inittab文件,Busybox init程序解析它,然后按照它的指示创建各种子进程,否则使用默认的配置创建子进程.
(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组合键时执行的程序
(3)inittab文件例程
<1>::sysinit:/etc/init.d/rcS
1.该条目的id省略,表示使用与init进程一样的控制台.
2.该条目的runlevels在嵌入式Linux中都会省略.
3.该条目的action是sysinit,表示系统启动后最先执行.
4.该条目的process是/etc/init.d/rcS,表示系统启动后最先执行脚本/etc/init.d/rcS.
<2>::respawn:-/bin/login
1.该条目的id省略,表示使用与init进程一样的控制台.
2.该条目的runlevels在嵌入式Linux中都会省略.
3.该条目的action是respawn,表示init进程监测发现子进程退出时,重新启动它,永不结束.
4.该条目的process是/bin/login,表示init进程监测发现/bin/login子进程退出时,重新启动它,永不结束.
标签:文件格式 vat sbin linu 环境 wait 令行 根据 用户态
原文地址:https://www.cnblogs.com/yangjiquan/p/11368317.html