当前位置:首页 » JavaScript技术

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

2014-03-25 12:10 本站整理 浏览(10963)

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=50

start()
{

./opt/ipnc/system_server &
}

stop()
{

killallsystem_server
}

之后还需要在rc.d目录下做一个链接,启动时系统会按顺序启动rc.d目录下的脚本链接,对应执行init.d目录下的启动脚本。脚本的命名要符合系统规范,init.d下telnet脚本在rc.d目录下的链接文件名为S50telnet。所以链接文件要在脚本名前加S+启动顺序数字,启动顺序要等系统进行完必要的初始化。所以我们命名为S95+脚本名。

命令:ln -s /etc/init.d/startCamera /etc/rc.d/S95startCamera
重启,即可

现在实现了应用程序的开机自启动。