家用住宅主机进程守护supervisor托管AI中转
很多朋友在家用旧电脑或迷你主机上搭建了 AI 中转服务,比如 OneAPI、NewApi 或者自己写的小程序。
这类服务一旦进程意外挂掉,网站或调用就会断掉。
手动重启太累,靠 systemd 又有点复杂。
其实用 Supervisor 就能轻松实现进程守护,崩溃后自动拉起,转托管成系统服务。
下面就是家用住宅主机上完整可操作的步骤。
为什么家庭服务器需要进程守护
家用主机通常不是 7×24 专人盯着,网络波动、内存泄漏、程序 bug 都可能导致中转进程退出。
没有守护工具,你只能等用户反馈才知道服务挂了。
Supervisor 作为一个轻量级进程管理工具,能监控你指定的程序,一旦发现没在运行就自动重启,还能收集日志。
动手安装和配置 Supervisor
首先登录你的 Linux 主机(本文以 Ubuntu / Debian 为例),执行以下命令安装:
sudo apt update
sudo apt install supervisor -y
安装完成后,Supervisor 会自动启动并注册为 systemd 服务,但我们需要调整它管理我们自己的程序。
配置 AI 中转服务的托管任务
进入 Supervisor 的配置目录:
cd /etc/supervisor/conf.d/
sudo touch your_proxy.conf
sudo nano your_proxy.conf
在打开的空白文件里填入下面的配置(根据你的实际路径和命令修改):
[program:ai_proxy]
command=/usr/bin/python3 /home/youruser/ai_proxy/server.py
user=youruser
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/ai_proxy_err.log
stdout_logfile=/var/log/ai_proxy_out.log
environment=PATH="/usr/bin:/usr/local/bin"
解释几个关键字段:
- command:你平时启动中转程序的那条完整命令,尽量写绝对路径。
- user:以哪个系统用户运行,最好用一个普通用户,避免权限问题。
- autorestart=true:进程退出后自动重启。
- startretries=3:如果启动失败,尝试重试 3 次。
- 日志文件:建议放到 /var/log/ 下,方便查看。
保存文件后,重新加载 Supervisor 配置:
sudo supervisorctl reread
sudo supervisorctl update
现在你的 AI 中转程序已经跑起来了,用下面命令查看状态:
sudo supervisorctl status
如果看到 ai_proxy RUNNING 就表示正常。
排错与注意事项
无法读取配置文件:检查 conf 文件权限,确保 644 且属主 root。
sudo chmod 644 /etc/supervisor/conf.d/your_proxy.conf
程序启动后立刻退出:先手动在终端跑一次 command 中的命令,排除程序本身问题。
也可以看日志:
sudo tail -f /var/log/ai_proxy_out.log
权限不足:如果中转程序需要访问某些文件或端口,确保 user 字段指定的用户有对应权限。
家用主机里用 whoami 查看当前用户,填入即可。
Supervisor 服务没开启:如果重启系统后 Supervisor 没自启,用 systemctl enable supervisor 设置开机启动。
验证守护是否生效
先确认进程在运行,然后手动杀掉它:
# 查看进程号
ps aux | grep ai_proxy
# 杀掉进程(假设 pid 为 12345)
sudo kill -9 12345
接着马上看状态:
sudo supervisorctl status
几秒后,你会看到先显示 FATAL,然后变成 STARTING,最后回到 RUNNING。
说明进程守护功能正常,崩溃后自动拉起了。
如果你后续需要停止服务,用 sudo supervisorctl stop ai_proxy。
想看实时日志,用 sudo supervisorctl tail -f ai_proxy。
家庭主机跑 AI 中转服务,一个 Supervisor 就能帮你省去半夜起床重启程序的麻烦。
如果遇到本文没覆盖到的报错,可以再查看 /etc/supervisor/supervisord.conf 全局设置,或者到日志里找具体原因。