forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
    查看: 3050|回复: 0

    openwrt下怎样添加开机启动脚本

    [复制链接]

    76

    主题

    2144

    帖子

    9869

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    9869

    官方人员

    发表于 2022-2-12 16:37:37 | 显示全部楼层 |阅读模式
    如果有一个自己的程序,怎样让程序在设备开机时自动启动呢?
    openwrt系统与大多数linux一样,只需要在/etc/init.d目录下创建启动脚本,然后使能即可
    下面是我在S1300设备上的实际操作步骤:
    1. 首先,使用vi命令直接创建并编辑一个启动脚本(vi编辑器的使用请自行百度),例如,名字叫my_service
    1. vi /etc/init.d/my_service
    复制代码
    如果你的程序运行一下就马上退出,例如在开机启动时向系统日志中写一条日志,在编辑器中输入以下内容
    1. #!/bin/sh /etc/rc.common
    2. START=99

    3. start() {
    4.    logger "test my service"
    5. }
    复制代码

    如果你的程序是一个守护程序(需要一直运行),我这里以mqtt服务为例,在编辑器中输入以下代码
    1. #!/bin/sh /etc/rc.common
    2. START=99
    3. USE_PROCD=1

    4. start_service() {
    5.   procd_open_instance "gl_mqtt_service"
    6.   procd_set_param command "/usr/bin/gl_mqtt_service"
    7.   procd_close_instance
    8. }
    复制代码
    START=99 表示服务启动的顺序是99,根据自己的需要设置启动顺序
    USE_PROCD=1表示服务将以守护程序的形式运行
    procd_open_instance "gl_mqtt_service" 中的gl_mqtt_service是服务的名字,可以自己定义,清晰明了即可
    procd_set_param command "/usr/bin/gl_mqtt_service" 中的/usr/bin/gl_mqtt_service是需要运行的守护程序路径,根据实际情况修改
    procd_close_instance 是一个固定格式,照写即可


    2. 编辑好文件之后赋予文件可执行权限并使能,命令如下
    1. chmod +x /etc/init.d/my_service
    2. /etc/init.d/my_service enable
    复制代码
    3. 这个时候,一个启动服务就设置好了,可以通过 ls -l /etc/rc.d 命令查看服务是否正确使能

    当看到你自己的服务出现在列表中的时候,表示开机启动设置成功

    如果你有luci页面,在system->startup菜单下也可以看到自己的开机启动服务



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|gl-inet.cn ( 粤ICP备18130956号 )

    GMT+8, 2024-12-4 01:53 , Processed in 0.023242 second(s), 25 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表