Sirius
Sirius

目录

naive openwrt配置

在 OpenWrt (以及 ImmortalWrt) 上,配置服务自启动主要使用系统自带的 Procd 管理架构

安装naiveproxy 这些就不写了


/etc/init.d/ 目录下创建一个新文件。以 naive-sg 为例:

vi /etc/init.d/naive-sg

可以自行制定配置文件位置和内容 /root/sg-conf.json

精简版

#!/bin/sh /etc/rc.common

# 执行顺序,通常网络代理类服务设为 99(最后启动)
START=99
# 停止顺序
STOP=10

# 声明使用 procd 进程管理工具
USE_PROCD=1

start_service() {
    procd_open_instance
    
    # 核心:你要执行的命令及参数
    procd_set_param command /usr/bin/naive /root/sg-conf.json
    
    # 开启日志输出,方便在 logread 中查看错误
    procd_set_param stdout 1
    procd_set_param stderr 1
    
    # 守护进程:崩溃后自动重启(10秒内重启超过5次则放弃,每次尝试间隔5秒)
    procd_set_param respawn 3600 5 5
    
    procd_close_instance
}

我常用的


#!/bin/sh /etc/rc.common  
  
USE_PROCD=1  
  
START=99  
STOP=10  
  
SERVICE_DAEMONIZE=0  
SERVICE_WRITE_PID=1  
  
start_service() {  
   procd_open_instance  
   procd_set_param command /usr/bin/naive /root/tx-conf.json  
   procd_set_param stdout 1  
   procd_set_param stderr 1  
   procd_set_param user root  
   procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}  
   procd_close_instance  
}  
  
stop_service() {  
   # 可选:清理操作  
   echo "Stopping naiveproxy..."  
}

新创建的脚本默认是没有执行权限的,必须要赋予 755 权限:

chmod +x /etc/init.d/naive-sg

脚本准备好后,通过以下命令进行管理:

/etc/init.d/naive-sg enable

原理:这会在 /etc/rc.d/ 目录下创建一个软链接(如 S99naive-sgbv),系统开机时会自动按顺序扫描并运行。

/etc/init.d/naive-sg start
# 查看进程是否存在
ps | grep naive

# 查看系统日志,确认有没有报错
logread | grep naive
/etc/init.d/naive-sg stop     # 停止服务
/etc/init.d/naive-sg restart  # 重启服务
/etc/init.d/naive-sg disable  # 取消开机自启动