【Busybox】Busybox init启动过程
来源:互联网 发布:拳击 泰拳 身材 知乎 编辑:程序博客网 时间:2024/05/29 12:07
Busybox会在内核刚完成加载后就立即启动,此后Busybox会跳转到它的init进程开始自横行,它的init进程主要进行一下的工作。
1、为init进程设置信号处理进程
2、对控制台进行初始化
3、解析inittab文件即/etc/inittab
4、在默认情况想ia,Busybox会运行系统初始化脚本/etc/init.d/rcS
5、运行导致init暂停的inittab命令(action type : wait)
6、运行仅执行一次的initta命令(action type : once)
完成初始化控制台后,busybox检查/etc/inittab文件是否存在,如果不存在,将使用一个缺省的inittab,我可可以自己写一个inittab文件,格式如下:
id:runlevel:action:process
id指定要启动的进程 runlevel是运行级别,busybox不支持运行级别,所以为空
action是要执行的动作,process指定要运行的程序和启动的命令行参数
Action:
sysinit 指定初始化脚本路径
respawn 当某进程结束时重启该程序
askfirst 在启动程序前提示用户按回车键
wait 等待所启动的进程结束
once 只运行进程一次,不等待进程结束
crtlaltdel 按组合键时执行的进程
shotdown 系统关闭时运行的进程
restart 重启时运行的进程,通常是init本身
自己写的inittab
::sysinit:/etc/init.d/rcs
::respawn:-/bin/sh
tty2:askfirst:-/bin/sh
::ctrlaltdel:/bin/umount –a –r
第一句指定执行初始化脚本为 /etc/init.d/rcS
第二句就是当进程退出,如执行exit后,又重新出现命令提示符
如果要用帐号密码登陆,则改成-/bin/login
第三句是在启动linux后,提示要按回车才能进入
第四句是在按组合键后,执行umount,把所有文件系统umount
再看/etc/init.d/rcS
#!/bin/sh //指定shell
/bin/mount –a //mount –a 为挂载全部文件系统,详见/etc/fstab
exec /usr/etc/.rc.local //执行rc.local
rcS只完成挂载全部文件系统,然后执行rc.local,进入/usr/etc,看rc.local
#!/bin/sh
ifconfig eth0 192.168.220.10 //设置板子IP
echo “Set IP = 192.168.220.10”
mount –t nfs –o nolock …………….. //挂载NFS
echo “mount nfs ok”
也可以写一些其他的挂载命令
到这里就完成了启动过程,有时也可以在/etc下写一个profile,这个是由shell执行的,启动后,按完回车才执行,这里也可以写一些初化脚本,如初始化环境变量
总结:linuxrc -> /sbin/init -> /etc/inittab -> /etc/init.d/rcS -> /usr/etc/rc.local /etc/profile
也可以编写自己的linuxrc
#!/bin/sh
/bin/mount –n –t ramfs ramfs /etc
/bin/cp –a /mnt/etc/* /etc
/bin/mount –f –ramfs ramfs /tmp
exec /sbin/init
主要就是最后一句,执行init
把/etc中的文件放到/mnt/etc/下,挂载/etc/为ramfs,然后把/mnt/etc/下的所有文件拷到/etc下,这时/etc下就为可写的了,这样可以方便修改脚本
最好也将/tmp挂为ramfs,因为执行QT程序时,需要tmp目录为可写
- 【Busybox】Busybox init启动过程
- BusyBox Init启动过程
- Busybox init启动过程分析
- busybox init启动过程分析
- Busybox init进程启动过程分析
- Busybox init进程启动过程分析
- Busybox init进程启动过程分析
- Busybox init进程启动过程分析
- busybox内init进程启动过程
- Busybox init进程启动过程分析
- busybox init 过程
- busybox init初始化过程
- 制作文件系统之三:BusyBox init的启动过程
- Busybox init进程启动过程 (资料收集)
- 嵌入式Linux使用Busybox init进程启动过程分析
- 嵌入式Linux使用Busybox init进程启动过程分析
- 嵌入式Linux使用Busybox init进程启动过程分析
- 嵌入式Linux使用Busybox init进程启动过程分析
- 用Visual C#编写屏幕保护程序
- ADO 创建 ACCESS
- 转帖:DELPHI用const来提高应用程序在多核多线程下的性能
- Unhandled exception type UsersException解决方法!
- C#利用smtp服务器发送邮件简介
- 【Busybox】Busybox init启动过程
- 就近原则—const关键字的使用
- VC编程基础:文件和文件夹操作
- centOS下卸载samba
- c语言中volatile关键字
- tree双击展开或关闭
- PHP类实例教程(八):类的继承
- centOS下yum安装配置samba
- 【SEP4020】Linux开发推荐挂载NFS作为根文件系统