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、
相关文章推荐
- QEMU上运行BusyBox详解
- 极度简约,最小 Linux 发行版 Tiny Core Linux 7.1 发布
- 在 Android 模拟器中安装 busybox
- android手机安装busybox步骤
- 编译busybox出现cannot find -lcrypt错误
- Busybox的安装步骤
- 关于安卓busybox命令无法ping域名但可以ping通ip地址问题
- 为omap3530使用BusyBox构建linux文件系统及添加telnet服务
- Android移植busybox
- Linux 下 Busybox 交叉编译
- 使用tdm-gcc编译lua5.2 socket模块
- zedboard---------在主机Ubuntu下面建立和开发板(busybox文件系统)通信的网络文件系统
- 根文件系统制作
- 增加Busybox小程序和函数库
- TR111 and TR069 function development note (2)
- Embeded system 1
- Linux文件系统启动过程及login的实现 (busybox)
- busybox 在制作根文件系统让shell显示主机 用户名和工作目录的方法
- fedora安装busybox过程及出错处理
- busybox init进程分析