如何使一个openwrt下的软件开机自启动

条件有三:

1.需要在软件包的Makefile中添加宏定义Package/$(package-name)/preinst和Package/$(package-name)/prerm

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

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

2.需要一个启动脚本,并且需要有执行权限(曾尝试过直接将脚本放置在target/linux/$(chip-series)/base-files/etc/init.d目录下,但是openwrt启动后不会执行这个脚本,为什么,因为没有执行权限,那么直接修改此脚本的权限呢?不可行)
如何实施?

将启动脚本制作成一个此软件包的补丁,放到软件包的patches目录下,脚本内容如下:

#!/bin/sh /etc/rc.common
# "new(er)" 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=200
APP=hello
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1

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

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

3.脚本准备好了,那么此时需要安装脚本到要制作的根文件系统中

在软件包的Makefile中的宏定义Package/$(package-name)/install里加入以下类似代码:

$(INSTALL_DIR) $(1)/etc/init.d

$(INSTALL_BIN) $(script-path) $(1)/etc/init.d

这样权限就有了

原文地址:https://www.cnblogs.com/dakewei/p/10197748.html

时间: 2024-10-10 09:16:00

如何使一个openwrt下的软件开机自启动的相关文章

VC++ 设置软件开机自启动的方法

0  概述 软件开机自启动是比较常用的做法,设置方法也有好几种. 1  使用者模式 在"开始菜单"的所有程序中有个"启动"文件夹,可以将需要设置为开机启动的应用程序放在这个文件夹中.但是,这样做存在不足:"启动"文件夹路径在每台电脑有可能是不同的,没法做到一劳永逸. 同时,如果要禁止程序开机启动,可将"启动"文件夹中对应的程序文件移除,也可以"Win+R"输入"msconfig"进行手动

linux下配置tomcat开机自启动

Linux下配置tomcat开机自启动 1.写一个tomcat脚本,内容如下,设置其权限为755,放在/etc/init.d/目录下 #!/bin/bash## /etc/init.d/tomcat# init script for tomcat precesses## processname: tomcat# chkconfig: 2345 86 16# description: Start up the Tomcat servlet engine. if [ -f /etc/init.d/f

linux下数据库实例开机自启动设置

linux下数据库实例开机自启动设置 1.修改/oratab [[email protected] ~]# vi/etc/oratab     --把N改为Y,如下提示 # This file is used by ORACLEutilities.  It is created by root.sh # and updated by the Database ConfigurationAssistant when creating # a database. # A colon, ':', is

systemd下supervisord服务开机自启动以及注意事项

systemd 下supervisord服务开机自启动 centos7 开机自启动脚本: #vim /lib/systemd/system/supervisord.service # supervisord service for sysstemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] ExecStart=/usr/bin/supervi

C#实现软件开机自启动原理与代码

1.软件自启动原理 软件自启动的原理要从Windows的注册表聊起,在Windows操作系统下,主要有2个文件夹和8个注册表键项控制程序的自启动,这部分的详细介绍可以参看博客http://www.cnblogs.com/fukajg/archive/2012/08/10/2631250.html.本程序通过“Run”键值实现,Run键值是自启动程序最常见的地方.它的位置在[HKEY_CURRENT_USER\Softvvare\Microsoft\Windows\CurrentVersion\R

Linux(CentOS)系统下设置nginx开机自启动

Nginx 是一个很强大的高性能Web和反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动.首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:vi /etc/init.d/nginx 在脚本中添加如下命令:*************************************************************************************************************************

windows下python程序开机自启动

开机自启动有三种方案: 1.把你的python程序随便放到C盘的一个目录下,然后把它的快捷方式放到windows开机自启动的文件夹(文件夹的位置在开始菜单里有) 2.Python打包成exe,放到启动文件夹 3.start.c打包成exe,让start.c调用你的Python程序 start.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h>

win7下安装Mysql 开机自启动

1.下载安装MySql,我用的是MySQL_5.6.24_winx64_XiaZaiBa,解压到一个磁盘下面,我这里安装到D盘,D:\install\MySQL\MySQL Server 5.6. 2.设置系统环境变量,为了方便,在Windows环境变量的系统变量的PATH中添加MYSQL的bin文件夹路径(如:D:\install\MySQL\MySQL Server 5.6\bin),不需要在D:\mysql-5.5.23-win32\bin目录下运行. 3.接下去让我们开始试着将MYSQL

Linux下设置svn开机自启动

方式一:centos 7 设置svn开机自启动 使用新的systemctl 服务命令  (笔者成功验证过,该方式可行) [[email protected] init.d]# vi /lib/systemd/system/svnserve.service   [[email protected] init.d]# vi /etc/sysconfig/svnserve   [[email protected] init.d]# systemctl enable svnserve.service