Supervisor在Linux中安装配置核心是三步:装软件、写配置、加载生效;推荐用apt/yum/dnf安装,配置单个服务到/etc/supervisor/conf.d/下.conf文件,再通过supervisorctl reread与update加载,支持前台进程自动重启与日志管理。

在 Linux 中安装配置 Supervisor,核心是三步:装好软件、写对配置、加载生效。它不依赖系统 init,适合托管 Python 应用、爬虫、后台任务等长期运行的前台进程。
安装 Supervisor
推荐用系统包管理器安装,省去依赖和路径问题:
-
Ubuntu/Debian 系统:
sudo apt update && sudo apt install supervisor -
CentOS 7 / RHEL 7:先启用 EPEL,再安装
sudo yum install epel-release -y && sudo yum install supervisor -y -
CentOS 8+ / Rocky / AlmaLinux:
sudo dnf install epel-release -y && sudo dnf install supervisor -y
安装后,Supervisor 服务默认未启动。运行以下命令启用并开机自启:
sudo systemctl enable --now supervisord-
sudo systemctl status supervisord(确认状态为 active (running))
配置要管理的程序
不要直接改主配置文件 /etc/supervisor/supervisord.conf,而是把每个服务单独写成 .conf 文件,放在 /etc/supervisor/conf.d/ 目录下。例如创建 /etc/supervisor/conf.d/mybot.conf:
[program:mybot] command=python3 /home/user/bot.py directory=/home/user user=user autostart=true autorestart=true startsecs=5 redirect_stderr=true stdout_logfile=/var/log/mybot.log stderr_logfile=/var/log/mybot.err.log environment=PATH="/usr/local/bin:/usr/bin:/bin"
关键点说明:
-
command必须是前台运行命令(不能加&;若原程序是 daemon,需加--no-daemon或类似参数) -
user建议设为普通用户,避免 root 权限滥用 -
autorestart=unexpected更稳妥——只在非预期退出时重启,跳过正常 shutdown -
environment可注入 PATH、PYTHONPATH 等,解决找不到命令或模块的问题
加载配置并管理进程
配置保存后,必须让 Supervisor 重新读取并应用:
-
sudo supervisorctl reread—— 扫描conf.d/下新增或修改的配置文件 -
sudo supervisorctl update—— 把新配置加入管控(如果已存在同名程序,会自动重启) -
sudo supervisorctl status—— 查看所有程序状态(RUNNING / STARTING / FATAL 等) -
sudo supervisorctl start mybot、stop mybot、restart mybot—— 控制单个服务
如果遇到 unix:///var/run/supervisor.sock no such file 错误,通常是 supervisord 没跑起来,先执行 sudo systemctl start supervisord。
验证与调试小技巧
刚配完常遇到启动失败,可按顺序排查:
- 手动运行
command行里的命令,看是否能前台成功启动 - 检查
directory路径是否存在、权限是否允许user访问 - 查看日志:
sudo tail -f /var/log/mybot.log和/var/log/mybot.err.log - 主服务日志在
/var/log/supervisor/supervisord.log,里面常有配置语法错误提示


















