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
}

的确非常简单。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }

/etc/init.d/gmediarender enable

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }

/etc/init.d/gmediarender disable

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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }

原文地址:https://www.cnblogs.com/ningci/p/9574468.html

时间: 2024-10-22 15:07:59

openwrt 为软件包添加服务的相关文章

Android的软件包管理服务PackageManagerService源码分析

Android系统下的apk程序都是通过名为PackageManagerService的包管理服务来管理的.PacketManagerService是安卓系统的一个重要服务,由SystemServer启动,主要实现apk程序包的解析,安装,更新,移动,卸载等服务.不管是系统apk(/system/app),还是我们手工安装上去的,系统所有的apk都是由其管理的. 以android 4.0.4的源码为例,android4.0.4/frameworks/base/services/java/com/

Linux下chkconfig命令详解即添加服务以及两种方式启动关闭系统服务

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 一.chkconfig 的使用语法 1.chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <levels等级代号>][系统服务][on/off/reset] 2.参数用法: --add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文

chkconfig添加服务错误service memcached does not support chkconfig

chkconfig添加服务错误,提示XXX服务不支持 故障原文: [[email protected] ~]# chkconfig --add memcached service memcached does not support chkconfig 故障说明: 无法添加提示该错误是在服务的启动脚本里面没添加chkconfig的级别 解决方案: 我们一般在脚本开头加入下面两句就好了 #gedit /etc/init.d/memecached 添加下面两句到 #!/bin/bash 之后. #

linux启动流程详解、破解root密码、添加服务脚本

1.Linux的组成 kernel+rootfs kernel:进程管理.内存管理.网络管理.安全管理.文件系统管理.驱动程序 rootfs:程序和glibc 库:函数集合,function,调用接口(头文件负责描述) 过程调用:procedure  ,无返回值 结果调用:function 程序:二进制文件 2.内核设计流派 单内核(monolithic kernel):Linux 把所有功能集成于同一个程序 微内核(micro kernel):Windows, Solaris 每种功能使用一个

openwrt 编译软件包出现错误(is missing dependencies for the following libraries: libpthread.so.0)

install -m0755 /home/yanfa/workspace/trunk-wr703/build_dir/target-mips_r2_uClibc-0.9.33.2/lk_cnp_serial_eth/lk_cnp_serial_eth /home/yanfa/workspace/trunk-wr703/build_dir/target-mips_r2_uClibc-0.9.33.2/lk_cnp_serial_eth/ipkg-ar71xx/lk_cnp_serial_eth/b

添加web引用和添加服务引用有什么区别?

添加web引用和添加服务引用有什么区别,Add Service References 和 Add Web References 有啥区别?参考 http://social.microsoft.com/Forums/zh-CN/xmlwebserviceszhchs/thread/808d870b-49f1-47ac-b105-4beb580bcec6 (1)VS2005里提供的Add Web Reference(添加Web服务引用)的功能主要是添加Web Service引用.(2)VS2008保

(转)添加服务引用和添加Web引用对比

在WindowsForm程序中添加服务引用和Web引用对比 为了验证书上有关Visual Studio 2010添加服务引用和Web引用的区别,进行实验. 一.建立一个Web服务程序项目新建项目,选择ASP.NET空Web应用程序,在其中添加Web服务,然后发布到IIS,路径为http://localhost/hello/hello.asmx,服务主要通过HelloWorld()方法输出字符串“Hello World”,内容如下: using System;using System.Collec

调用WCF不需要添加服务引用,使用一个WCFHelper类就可以

效果图: 调用过程: string WCFURL = "http://localhost:100/Service1.svc"; UserRequest user = new UserRequest { UserName = UserName.Text, Address = Address.Text, Email = Email.Text }; string request = "{\"request\":" + new JavaScriptSer

VS添加服务引用和 Web引用的区别

参考: http://blog.csdn.net/szstephenzhou/article/details/7834669 http://book.2cto.com/201304/20441.html 1. 添加服务引用使用的是WCF服务,而添加Web引用使用的是Web服务. 2.同时存在添加服务引用与添加Web引用两者情况的项目类型是Web服务程序,包括Web Service项目.普通的控制台和窗体等类型是没有添加Web引用的. 下面是我自己的心得: 1.在VS2012中 窗体应用程序  只