inittab文件
来源:互联网 发布:视频加边框软件 编辑:程序博客网 时间:2024/04/29 23:18
一、inittab文件背景
(1)init进程的作用
使用uboot下载Linux内核时,环境变量bootargs决定了kernel向根文件系统传递的参数,这些参数包括
bootargs=noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
<1>root:指定了根文件系统在Flash分区中的位置
<2>console:指定了内核启动后首选的控制台.
<3>init:指定了Linux内核启动完毕后调用的第一个、也是唯一的一个用户态进程,即进程号为1的进程.其中,参数"init=linuxrc"非常重要.由于init进程是kernel启动后的第一个、也是唯一的一个用户态进程,用户的许多应用程序,比如Mplayer、Qt、Boa都由该进程来启动,换句话说,init进程是所有进程的发起者.
(2)linuxrc文件的作用
<1>在嵌入式Linux中,init进程的执行程序通常是二选其一.这两个执行程序分别是/sbin/init程序,或者是Busybox生成的linuxrc程序.init进程的作用即这个程序的功能.init进程具体运行哪个程序,则由uboot的环境变量bootargs决定,即init=/linuxrc.通常采用命令行参数"init=xxxx"指定某个程序作为init进程运行.比如,init=linuxrc.可以说,linuxrc程序的作用就是init进程的作用.
<2>linuxrc是一个程序,它的执行流程如下所示.其中,如何解析inittab文件可以由用户设定,其它两个一般都不会修改.
1、设置信号处理函数.
2、初始化控制台.
3、解析inittab文件.
(3)/etc/inittab文件的作用
从上可知,init进程,或者说linuxrc程序最后会解析inittab文件.inittab,可以理解为init table(初始化表),它只是一个普通文件,但系统会根据/etc/inittab的内容启动相关进程或脚本.
(1)init进程的作用
使用uboot下载Linux内核时,环境变量bootargs决定了kernel向根文件系统传递的参数,这些参数包括
bootargs=noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
<1>root:指定了根文件系统在Flash分区中的位置
<2>console:指定了内核启动后首选的控制台.
<3>init:指定了Linux内核启动完毕后调用的第一个、也是唯一的一个用户态进程,即进程号为1的进程.其中,参数"init=linuxrc"非常重要.由于init进程是kernel启动后的第一个、也是唯一的一个用户态进程,用户的许多应用程序,比如Mplayer、Qt、Boa都由该进程来启动,换句话说,init进程是所有进程的发起者.
(2)linuxrc文件的作用
<1>在嵌入式Linux中,init进程的执行程序通常是二选其一.这两个执行程序分别是/sbin/init程序,或者是Busybox生成的linuxrc程序.init进程的作用即这个程序的功能.init进程具体运行哪个程序,则由uboot的环境变量bootargs决定,即init=/linuxrc.通常采用命令行参数"init=xxxx"指定某个程序作为init进程运行.比如,init=linuxrc.可以说,linuxrc程序的作用就是init进程的作用.
<2>linuxrc是一个程序,它的执行流程如下所示.其中,如何解析inittab文件可以由用户设定,其它两个一般都不会修改.
1、设置信号处理函数.
2、初始化控制台.
3、解析inittab文件.
(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 toactivate 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子进程退出时,重新启动它,永不结束.
(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 toactivate 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子进程退出时,重新启动它,永不结束.
- inittab文件
- inittab文件
- inittab文件
- inittab文件
- inittab文件详解
- /etc/inittab文件详解
- 剖析inittab文件
- /etc/inittab文件详解
- etc/inittab文件解析
- /etc/inittab文件
- inittab文件诠释
- Ubuntu中的inittab文件
- /etc/inittab文件详解
- Ubuntu中的inittab文件
- /etc/inittab文件分析
- INITTAB 文件解释
- busybox inittab文件分析
- /etc/inittab文件详解
- Android SurfaceView 详解(三)
- 最最最黑暗的一天
- init进程
- jsp页面不执行当前页面的js方法
- 这些年的项目管理心得
- inittab文件
- 怎样选择TCP或者UDP??
- 闹钟设置项目 ---- android应用开发揭秘
- 使用jquery实现点击按钮弹出层和点击空白处隐藏层
- WIN BAT实现文件传送
- Android 中反编译APK的方法
- nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
- 5分钟搞定用mac控制你的PC: REALVNC 转自 babyhelen87
- hdoj 1281 棋盘游戏