Openwrt下设置程序开机自动启动

今天在使用Openwrt时,需要将scp到上面的程序设置为开机自动启动。按照Linux下设置自动启动的方法并不有效。后来在官方wiki下发现了介绍文章,具体可见Openwrt下http://wiki.openwrt.org/doc/techref/initscripts

1. 在/etc/init.d/中按照以下格式编写shell脚本


#!/bin/sh /etc/rc.common
START=99
STOP=15  
start()
{
echo start
#commands to launch application, such as above
}  
stop()
{
echo stop
#commands to kill application
}

以上便是一份在自启动的shell脚本模板。在start方法中写入运行程序的命令,而stop方法中写入终止程序运行的命令即可。在上面的代码中,第一行称为shebang line,它使用/etc/rc.common脚本作为包装器。第二行和第三行的START=99, STOP=15指的是优先级,优先级的脚本会先运行。数字越大,优先级越低。

2. 当前仅有上面的脚本是不够的。我们还需要以下的命令
1)使用chmod命令将脚本变为可执行脚本:chmod +x xxx
2) 使用文件全路径+xxx enable使得脚本开机自启动。其中,xxx为前面编写的脚本文件名。

文件全路径/xxx enable的命令实质上是为脚本文件创建一个软链接,软链接存放于/etc/rc.d/下,如下:
命令:ln -s /etc/init.d/mqtt_start.sh /etc/rc.d/
mqtt_start.sh

如果我们不想使用rc.common的enable命令也可以,我们可以自己创建链接。
3)通过以上的步骤就可以创建程序自启动脚本,将程序设置为自启动。

3. 另外,如果在开机boot期间,需要运行程序,我们可以使用boot方法。使用方法类似于start方法和stop方法。

发表评论

电子邮件地址不会被公开。 必填项已用*标注