# naive openwrt配置

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

安装naiveproxy 这些就不写了

---

### 第一步：创建并编辑脚本文件

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


```
vi /etc/init.d/naive-sg
```

---

### 第二步：编写 Procd 脚本内容


可以自行制定配置文件位置和内容 /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
```

---

### 第四步：启用自启动与管理

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

#### 1. 开启【开机自启动】


```
/etc/init.d/naive-sg enable
```

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

#### 2. 立即启动服务


```
/etc/init.d/naive-sg start
```

#### 3. 查看服务是否成功运行


```
# 查看进程是否存在
ps | grep naive

# 查看系统日志，确认有没有报错
logread | grep naive
```

#### 4. 其他常用管理命令


```
/etc/init.d/naive-sg stop     # 停止服务
/etc/init.d/naive-sg restart  # 重启服务
/etc/init.d/naive-sg disable  # 取消开机自启动
```

