V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
vinsec
V2EX  ›  问与答

openwrt 下创建开机自启服务失败

  •  
  •   vinsec · 2019-03-04 21:35:57 +08:00 · 2304 次点击
    这是一个创建于 2116 天前的主题,其中的信息可能已经有所发展或是发生改变。

    openwrt 的开机自启的机制是:

    创建 /etc/init.d/[service]

    这个 service 本质是一个脚本,会重载/etc/rc.common 里的启停函数(应该可以这样理解)

    脚本里面标注 START STOP 的值,会被认定为该服务的优先级。

    然后就可以通过 service [service_name] start/stop 来启停服务

    最后 service [service_name] enable 就会创建 /etc/rc.d/S50uhttpd --> /etc/init.d/uhttpd 的软链接

    最后,该服务就会根据优先级进行开机启动


    现在的问题是,写了了一个简单的服务,大致是:

    #!/bin/sh /etc/rc.common
    # Example script
    # Copyright (C) 2007 OpenWrt.org
     
    START=55
    STOP=55
     
    start() {    
    	echo start
       /usr/sbin/xxxx -a -b -c
    }                 
     
    stop() {
    	echo stop
    	/usr/bin/killall [service_name] 
    }
    
    boot() {
    	echo boot
    	start
    }
    
    

    脚本也加了执行权限和 enable 了,也能看到软链接。但是就是无法开机启动。日志也无法排查,不知道是什么情况?

    6 条回复    2019-03-05 09:27:18 +08:00
    vinsec
        1
    vinsec  
    OP
       2019-03-04 22:19:55 +08:00 via iPhone
    是不是 17.01.5 版本的 op 只支持 procd 风格的 init 脚本
    ysc3839
        2
    ysc3839  
       2019-03-04 22:43:06 +08:00 via Android
    脚本里用 logger -t [service_name] [log_msg] 记录到系统日志,看看有没有成功启动。
    vinsec
        3
    vinsec  
    OP
       2019-03-04 22:52:14 +08:00
    @ysc3839 我是 SSH 进去看进程有没有启动的,不过脚本怎么改都没用。
    我找出原因了。OP 新版本必须使用 procd 语法风格的脚本才能创建自启服务。
    官网链接: https://openwrt.org/docs/guide-developer/procd-init-scripts
    ysc3839
        4
    ysc3839  
       2019-03-04 23:03:44 +08:00 via Android
    @vinsec 我要你这么做的目的是确认脚本是否有执行,排除目标程序启动后退出的情况。
    只支持 procd 是错误的,我目前使用的 18.06.1 中的 /etc/init.d/boot 就没有使用。
    vinsec
        5
    vinsec  
    OP
       2019-03-04 23:10:29 +08:00 via iPhone
    @ysc3839 我明天试一下再来回复。我没有看 boot,不过 init.d 下的其他服务基本都是 procd 写的,可能结论下早了。
    paradislover
        6
    paradislover  
       2019-03-05 09:27:18 +08:00 via Android
    运行下 /etc/init.d/ucitrack
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4682 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:06 · PVG 09:06 · LAX 17:06 · JFK 20:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.