为OpenWrt添加service,自启动问题

记得去年,写过一个程序,是运行在OpenWrt上的,想让程序开机自启动,最后费了9牛二虎之力,模仿别人的总算写出来了。但是一直没有明白为什么要这样,刚刚看open的官网,一下子恍然大悟。网址如 http://wiki.openwrt.org/doc/devel/packages

在“Packging a service”一节中,对这个问题进行说明。大意是如果你想在openwrt上运行一个服务(当然,这个服务是开机自启动的),你需要为这个服务写一个自启动脚本放在/etc/init.d/目录下,同时你需要把启动脚本中设置 START=20/STOP=90。下面是一个例子,在/etc/init.d/foo

#!/bin/sh /etc/rc.common
# "new" style init script
# Look at /lib/functions/service.sh on a running system for explanations of what other SERVICE_
# options you can use, and when you might want them.

START=80
APP=mrelay
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1

start() {
        service_start /usr/bin/$APP
}

stop() {
        service_stop /usr/bin/$APP
}

如果程序是和系统同时编译并安装进去的,不需要另外设置,服务就会开机自启动。但是,如果你是利用opkg安装这个程序,则需要运行/etc/init.d/下的启动脚本,对于上面的启动脚本,必须要运行如下代码,服务才能够实现开机自启动

/etc/init.d/foo enable
此时会发现rc.d/目录下多出了关于foo的一个链接,如果链接出现,证明开机自启动ok了。取消开机子启动命令如下,执行完后/rc.d/下的链接会消失。

/etc/init.d/foo disable




  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值