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 重启搞定~