Linux进程守护supervisor部署AI中转

用Supervisor守护AI中转服务:Linux进程守护部署教程

很多刚接触AI中转的朋友会遇到一个头疼的问题:服务跑着跑着就挂了,或者重启服务器后还得手动启动。
Linux进程守护工具Supervisor就是解决这个场景的利器。
本文面向零基础用户,一步步演示如何安装Supervisor、编写配置并让它守护你的AI中转服务(以常见的one-api为例),还会列出最常见的报错和排查方法。

为什么AI中转服务需要进程守护?

AI中转服务(如one-api、new-api)通常运行在后台,通过监听端口处理请求。
一旦程序异常退出、内存溢出或被系统杀掉,服务就中断了。
Supervisor能自动检测进程状态,并在进程挂掉后立即重启。
它还提供简洁的管理命令(supervisorctl),让你无需每次都敲复杂的启动脚本。
更重要的是,配置好开机自启后,服务器重启也能自动拉起服务,省心很多。

第一步:安装Supervisor

在主流Linux发行版上,安装Supervisor非常方便。
以CentOS 7/8和Ubuntu 20.04/22.04为例,分别执行以下命令:

CentOS

yum install -y epel-release
yum install -y supervisor

Ubuntu/Debian

apt update
apt install -y supervisor

安装完成后,启动Supervisor服务并设为开机自启:

systemctl start supervisord
systemctl enable supervisord

查看服务状态:systemctl status supervisord,显示active (running)即成功。

第二步:为AI中转服务编写Supervisor配置

Supervisor的配置文件默认放在/etc/supervisord.d/目录下(Ubuntu在/etc/supervisor/conf.d/)。
我们新建一个名为ai_transfer.ini的配置,目标守护进程是/opt/one-api/one-api,执行参数为--port 3000

[program:ai_transfer]
command=/opt/one-api/one-api --port 3000
directory=/opt/one-api
autostart=true
autorestart=true
user=root
startretries=3
stderr_logfile=/var/log/ai_transfer_err.log
stdout_logfile=/var/log/ai_transfer_out.log
environment=HOME="/root",USER="root"

关键字段说明

  • autostart=true:Supervisor启动时自动运行该服务
  • autorestart=true:进程退出后自动重启
  • startretries=3:启动失败重试3次
  • user:以什么用户运行,建议用普通用户(如www-data),安全起见这里示例用root
  • 日志文件路径:方便排错时查看输出

写好后,执行supervisorctl reread让Supervisor重新读取配置,然后supervisorctl update启动新程序。

第三步:管理服务与避坑指南

基本管理命令

supervisorctl status           # 查看所有进程状态
supervisorctl start ai_transfer  # 启动
supervisorctl stop ai_transfer   # 停止
supervisorctl restart ai_transfer# 重启
supervisorctl tail ai_transfer   # 实时查看日志

常见报错及解决方法

  1. unix:///var/run/supervisor.sock no such file:未启动Supervisor服务,先执行systemctl start supervisord
  2. FATAL Exited too quickly (process log may have details):进程启动后立即退出。检查配置文件中的command路径是否正确,可手动执行该命令看报错。另外检查日志文件(stdout_logfile)和stderr_logfile获取详细错误。
  3. 权限不足:如果AI中转服务需要读写某些目录(如数据库文件),确保配置里的user拥有对应权限。建议直接使用root用户(仅测试环境),生产环境创建专有用户。

避坑提示:AI中转服务常会用到Python虚拟环境或Node.js,此时command要写成绝对路径,例如/root/.local/share/virtualenvs/one-api/bin/python /opt/one-api/run.py
另外,如果服务依赖环境变量(如API密钥),可在environment字段中写全,或使用文件渲染方式。

第四步:验证守护效果

执行supervisorctl status,看到ai_transfer RUNNING pid 12345, uptime 0:10:00表示正常运行。
接着我们用kill命令手动模拟进程崩溃:

kill -9 12345   # 假设pid是12345

然后马上再执行supervisorctl status,几秒后状态会重新变为RUNNING且pid变了,说明Supervisor已经自动拉起。
最后重启服务器,登录后运行supervisorctl status,确认服务已自动启动。

常见高频问题解答

Q:Supervisor配置改了但没生效?
A:修改配置文件后必须执行supervisorctl rereadsupervisorctl update。如果只修改了已有程序的参数,也可以用supervisorctl update直接生效。

Q:AI中转服务占用了CPU过高,Supervisor会怎么处理?
A:默认Supervisor只关注进程是否存在,不会对CPU做限制。如果需要限制资源,可以配合cgroups或使用systemd的CPUQuota。

Q:能不能同时守护多个AI中转进程?
A:可以。在/etc/supervisord.d/下放多个.ini文件,每个[program:x]守护一个进程。管理时用supervisorctl start x指定程序名。

如果实际部署中遇到本文没有涵盖的报错,建议首先检查/var/log/ai_transfer_err.log中的详细错误,再根据关键字搜索,大部分问题都能快速定位。
另外,AI中转服务可能依赖外部数据库(如MySQL),请确保数据库先启动,否则进程会因连接失败而反复重启。
可以适当调大startretriesstartsecs参数来平滑处理。

分享到:
上一篇
跨境站高并发服务器扩容方案:从零实现弹性伸缩
下一篇
住宅机器千兆内网传输大模型:住宅千兆内网传输大模型
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意