添加初始化脚本之前,先要弄清两个问题?
什么是INIT?
init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,
就通过启动一个用户级程序init的方式,完成引导进程。
所以,init始终是第一个进程(其进程编号始终为1)。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。
如果内核找不到init,它就会试着运行 /bin/sh,
如果运行失败,系统的启动也会失败。
到底什么是运行级呢?
简单的说,运行级就是操作系统当前正在运行的功能级别。
这个级别从1到6 ,具有不同的功能。
不同的运行级定义如下:
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单用户模式 # s init s = init 1
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 - 没有用到
# 5 - X11 多用户图形模式(xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
相关启动文件:
/etc/inittab 确定系统运行级别 如:5
/etc/rc5.d
具体实现步骤如下:
1、linux启动初始化脚本的制作
step1: 先把 my.sh放到 /etc/init.d目录下
step2: 查看当前系统的启动级别
$ sudo runlevel
N 5
step3: 设定启动级别
$ update-rc.d my.sh start 98 5 .
98 为启动序号,
5是系统的运行级别,可自己调整,
注意不要忘了结尾的句点。
step4: 然后启动系统,测试一下设置是否有效。
2、移除符号链接
当你需要移除这个符号连接时,方法有三种:
1)直接到 /etc/rc5.d 下删掉相应的链接,当然不是最好的方法
2)$ update-rc.d -f s10 remove //推荐做法,但是经验证该命令无效
3)如果 update-rc.d 命令你不熟悉,还可以试试看 rcconf 这个命令,也很方便。
3、脚本参数
注意脚本编程语法:
定义变量
ROOT_HOME="/opt/dvsdk/sensor"
变量调用
$ROOT_HOME
逻辑判断
if [ $E2V = "ON" ]; then
…..
fi
成功启动
Starting syslogd/klogd: done
Starting thttpd.
gpio initialized
SPI initialized
vpif initialized
_____ _____ _ _
| _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
| | _| .'| . | . | | __| _| . | | | -_| _| _|
|__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_|
|___| |___|
Arago Project http://arago-project.org dm6467t-evm ttyS0
Arago 2009.11 dm6467t-evm ttyS0