zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    chown
    chmod
    商务部
    使用 UEditor 编辑器获取数据库中的数据
    Java实现 蓝桥杯 算法提高 双十一抢购
    Java实现 蓝桥杯 算法提高 双十一抢购
    Java实现 蓝桥杯 算法提高 双十一抢购
    IDEA,PyCharm系列软件常用快捷键
    IDEA,PyCharm系列软件常用快捷键
    IDEA,PyCharm系列软件常用快捷键
  • 原文地址:https://www.cnblogs.com/ningci/p/9574468.html
Copyright © 2011-2022 走看看