您的位置:首页 > 运维架构 > Linux

Busybox ---------- init进程解析

2016-05-29 21:26 351 查看

Busybox ---------- init进程解析

1、/sbin/init 是 /bin/busybox的符号链接,所以busybox是目标板上执行的第一个应用程序。

2、当busybox知道调用它的目的是init,它会立即跳转到init进程

3、busybox 的init
进程会依次执行以下工作:

a) 为init设置信号处理进程

b) 初始化控制台

c) 剖析inittab文件、/etc/inittab文件

d) 执行系统初始化命令。busybox在缺省情况下会使用/etc/init.d/rcS命令行。

e) 执行所有会导致init暂停的inittab命令(动作类型:wait)

f) 执行所有仅执行一次的inittab命令(动作类型:once)

 
 
一旦完成以上工作:init进程便会循环执行以下工作:
g) init进程便会从新启动Inittab命令(动作类型:respawn)

h) 执行所有终止时必须重启但启动前必须先询问用户的inittab命令(动作类型:askfirst)

 
在控制台初始化器件,busybox会判断系统是否被设置成在串行端口上执行控制台(console=ttyS0作为内核引导参数)
控制台初始化之后,busybox会检查/etc/inittab文件是否存在,如果此文件不存在,busybox会使用缺省的inittab配置。它主要为系统引导,系统挂起以及init重启动设置缺省的动作。如果存在则busybox会自动剖析/etc/inittab文件
 
4、/etc/inittab 文件格式

 
inittab文件中每一行的格式如下:

id:runlevel:action:process
 
id:用来指定所启动进程的控制tty;如果启动的进程并不是一个可以交互的shell,这个字段可以空,可以交互的shell,应该会有一个控制tty
 
runlevel: busybox会忽略此字段,可以不填
 
process:用来指明程序的路径
 
action字段用来表示应用到process的动作,该字段有:
 
sysinit :为init提供初始化命令行的路径
respwn:每当相应的进程终止执行便从新启动
askfirst:
wait:
once:
ctrlaltdel:按下组合件ctrl+alt+del执行相应的进程
shutdown:系统关机执行相应的程序
restart:init从新启动时,执行相应的进程
 
简单的模板:
 
::sysinit:/etc/init.d/rcS /*设置系统初始化文件*/
::respawn:/sbin/getty 115200 ttyS0 /*在115200bps
的串行端口启动一个登陆会话*/
::respawn:/control-module/bin/init  /*控制模块初始化命令行*/
::restart:/sbin/init
::shutdown:/bin/umount -a -r
 
/*控制模块初始化命令行具体内容*/
#!/bin/sh
#以读写模式从新安装(挂载)根文件系统(需要 /etc/fstab)
mount -n -o remount,rw /
#挂载/proc文件系统
mount /proc
#启动网络接口
/sbin/ifconfig eth0 192.168.1.12
 
5、
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息