openwrt脚本启动顺序说明与添加自启动脚本

最近在玩OpenWRT,记录一点从网上搜到的资料。

OpenWRT的启动脚本放在 /etc/init.d 目录下,而系统开机时自动运行/etc/rc.d目录下的脚本。所以在rc.d目录下、有init.d下脚本的链接文件。

首先,我们来看看系统自带脚本的启动顺序

这里,我们有一个简单的测试脚本
#!/bin/sh
for f in $( ls ); do
p=`sed -n '/START=/p' $f | sed 's/^START=//'`
if test $p && test -n $p; then
echo "$p $f"
fi
done

加上可执行权限
chmod +x ck.sh

查看结果
cd /etc/init.d
~/ck.sh

root@OpenWrt:/etc/init.d# /tt.sh ./
10 boot
50 cron
05 defconfig
60 dnsmasq
95 done
50 dropbear
45 firewall
96 led
40 network
99 sysctl
50 telnet
39 usb
97 watchdog

整理一下
05 defconfig //加载默认参数
10 boot  //启动
39 usb   // 加载usbfs
40 network  // 设置网卡参数
45 firewall   // 防火墙
50 dropbear // sshd server
50 cron     // .....
50 telnet   // 如果没有修改root密码,则启动telnet server
60 dnsmasq  // DHCP 和 DNS 服务端
95 done   // ...
96 led      // 指示灯
97 watchdog  // ...
99 sysctl    // 最后,进行必要的内核参数调整

然后,我们加入自己的脚本,实现模块驱动的加载、应用程序的开机自启动等。
首先在/etc/init.d里添加需要启动的shell脚本
vim startCamera
内容:
#!/bin/sh /etc/rc.common
# /init.d/startCamera
START=95
start()
{
./opt/ipnc/system_server &
}
stop()
{
killallsystem_server
}

之后还需要在rc.d目录下做一个链接,启动时系统会按顺序启动rc.d目录下的脚本链接,对应执行init.d目录下的启动脚本。脚本的命名要符合系统规范,init.d下telnet脚本在rc.d目录下的链接文件名为S50telnet。所以链接文件要在脚本名前加S+启动顺序数字,启动顺序要等系统进行完必要的初始化。我们在脚本中指定START=95,所以我们命名为S95+脚本名。
命令:ln -s /etc/init.d/startCamera /etc/rc.d/S95startCamera
重启,即可
现在实现了应用程序的开机自启动。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值