openwrt 为软件包添加服务

手动修改 rc.local 加入也可以实现自启动,缺点手动修改太麻烦,停止只能用 kill 。

配置成服务最方便了,可以启用或禁用,启动,停止,重启非常方便。

在openwrt 中使用服务 service 是非常方便的。

define Package/gmediarender/postinst
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
    echo "Enabling rc.d symlink for gmediarender"
    /etc/init.d/gmediarender enable
fi
exit 0
endef

define Package/gmediarender/prerm
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
    echo "Removing rc.d symlink for gmediarender"
    /etc/init.d/gmediarender disable
fi
exit 0
endef

在 gmediarender 的 Makefile 中添加2个项目。 okpg 基于 Debian 的软件包管理方式。postinst 安装以后执行,prerm 移除时执行,还有别的,这里用不到, 不介绍。

define Package/gmediarender/install
    $(INSTALL_DIR) $(1)/usr/bin
    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gmediarender $(1)/usr/bin
    $(INSTALL_DIR) $(1)/etc/init.d
    $(INSTALL_BIN) ./files/gmediarender.init $(1)/etc/init.d/gmediarender  #添加服务脚本
    $(INSTALL_DIR) $(1)/usr/share/gmediarender/
    $(INSTALL_DATA) ./files/*.png $(1)/usr/share/gmediarender/
endef

 

gmediarender.init

#!/bin/sh /etc/rc.common
# Copyright (C) 2008-2012 OpenWrt.org

START=99
APP=gmediarender
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
 
start() {
        service_start /usr/bin/$APP
}
 
stop() {
        service_stop /usr/bin/$APP
}

的确非常简单。

/etc/init.d/gmediarender enable

/etc/init.d/gmediarender disable

/etc/init.d/gmediarender start
/etc/init.d/gmediarender stop

/etc/init.d/gmediarender restart

 

转载于:https://www.cnblogs.com/ningci/p/9574468.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值