29
2019
09

openwrt 【路由器】添加启动脚本

OpenWRT的启动脚本放在 /etc/init.d 目录下,而系统开机时自动运行/etc/rc.d目录下的脚本。所以在rc.d目录下、有init.d下脚本的链接文件。源码中init.d位置在:/package/base-files/files/etc/init.d

vi package/base-files/files/etc/init.d

然后,我们加入自己的脚本,实现模块驱动的加载、应用程序的开机自启动等。 首先在/package/base-files/files/etc/init.d里添加需要启动的shell脚本

vi package/base-files/files/etc/init.d/fscar

然后,我们加入自己的脚本,实现模块驱动的加载、应用程序的开机自启动等。 首先在/package/base-files/files/etc/init.d里添加需要启动的shell脚本

vi package/base-files/files/etc/init.d/fscar

设置权限

chmod 777 package/base-files/files/etc/init.d/fscar

注:关于mjpg_streamer与ser2net启动参数请查看下面章节。

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

命令:ln -s /etc/init.d/fscar /etc/rc.d/s80fscar

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


源码例子2:

#!/bin/sh /etc/rc.common
# /init.d/my-plugin
START=50  #启动顺序
start() {
       #启动项执行的代码
}
stop() {
        killall my-plugin
}


后续操作:之后还需要在rc.d目录下做一个链接,启动时系统会按顺序启动rc.d目录下的脚本链接,对应执行init.d目录下的启动脚本。
链接命令如下:ln -s ../init.d/my-plugin /etc/rc.d/S50my-plugin
        重启搞定~




« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。