在 OpenWrt 上开启进程守护,通常有以下几种方法:使用 procd(OpenWrt 的进程管理系统)、nohup 或 screen 工具。OpenWrt 使用 procd 来启动、监控和管理守护进程,这是处理守护进程的最佳方式。
方法 1:使用 procd 配置守护进程
1、创建启动脚本
启动脚本通常位于 /etc/init.d/ 目录下。创建一个新的脚本文件,例如 myservice:
touch /etc/init.d/myservice
chmod +x /etc/init.d/myservice
2、编辑启动脚本
使用编辑器(例如 vi 或 nano)打开该文件,内容如下:
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /path/to/your/program --your-args
procd_set_param respawn
procd_close_instance
}
stop_service() {
# 这个函数会在停止服务时调用
echo "Stopping my service"
}
procd_set_param command
:指定你要运行的程序路径和参数。
procd_set_param respawn
:启用自动重启功能,如果程序崩溃或退出,
procd
将自动重新启动它。
START=99
:指定启动优先级,数字越小,启动越早。
3、启用和启动服务
保存文件后,启用并启动服务:
/etc/init.d/myservice enable
/etc/init.d/myservice start
通过这种方式,OpenWrt 会在每次开机时自动启动你的服务,并且服务异常退出后会被重新拉起。
方法 2:使用 nohup 和 &
如果你不需要 procd 的进程管理功能,也可以使用 nohup 和 & 将进程放入后台运行。
nohup /path/to/your/program --your-args > /dev/null 2>&1 &
不过,这种方式无法自动重启进程,也不会随系统重启自动启动。
方法 3:使用 screen 或 tmux
如果你想在后台运行程序并随时可以返回查看其状态,可以使用 screen 或 tmux。
·安装 screen: OpenWrt 中可以通过以下命令安装 screen:
opkg update
opkg install screen
使用 screen: 启动 screen,并在其中运行你的进程:
screen -S myservice
/path/to/your/program --your-args
按下 Ctrl+A,然后按 D 将会话放入后台。要重新回到会话中,可以使用:
screen -r myservice
总结
- 如果你希望守护进程能够随系统启动并自动重启,推荐使用
procd
进行配置。 - 如果只是需要简单地将进程放到后台运行,可以使用
nohup
或screen
。
procd
是 OpenWrt 中的首选方式,因为它能够提供更好的进程管理功能。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END