Supervisor是Linux下可靠的进程管理工具,支持系统包管理器(apt/yum/dnf)和pip3两种安装方式,配置后可通过supervisorctl管理进程启停与监控。

如果您需要在Linux服务器上部署一个可靠的进程管理工具,以确保脚本、Web服务或后台任务持续运行且崩溃后自动恢复,则Supervisor是成熟稳定的选择。以下是针对不同发行版和环境的多种安装与基础使用方法:
一、通过系统包管理器安装
该方式依赖系统仓库,自动处理依赖,适合新手及生产环境快速部署,配置文件路径和初始化服务已预设。
1、在Ubuntu或Debian系统中执行以下命令:
sudo apt update && sudo apt install supervisor -y
2、在CentOS 7/RHEL 7系统中,需先启用EPEL仓库:
sudo yum install epel-release -y && sudo yum install supervisor -y
3、在CentOS 8+/RHEL 8+或Fedora中使用dnf:
sudo dnf install epel-release -y && sudo dnf install supervisor -y
4、安装完成后,主配置文件位于 /etc/supervisord.conf,子配置目录为 /etc/supervisor/conf.d/,且supervisord服务默认已启用开机自启。
二、通过pip3安装(通用跨平台方案)
当系统仓库无Supervisor包(如某些精简版镜像)、需指定版本或Python环境隔离时,推荐使用pip3安装,适用于所有支持Python 3.6+的Linux发行版。
1、确认已安装python3-pip:
Debian/Ubuntu:sudo apt install python3-pip -y
CentOS/RHEL:sudo yum install python3-pip -y 或 sudo dnf install python3-pip -y
2、执行安装命令:
sudo pip3 install supervisor
3、安装成功后,需手动生成初始配置文件:echo_supervisord_conf | sudo tee /etc/supervisord.conf
4、务必修改配置中unix_http_server.file路径,避免/tmp下socket被系统清理,建议设为 /var/run/supervisor.sock
三、启动并验证Supervisor服务
无论采用哪种安装方式,均需启动守护进程并确认其正常运行,以支撑后续进程管理功能。
1、对systemd系统(CentOS 7+、Ubuntu 16.04+等)执行:
sudo systemctl start supervisord
2、设置开机自启:
sudo systemctl enable supervisord
3、检查服务状态:
sudo systemctl status supervisord
4、若返回active (running)且Main PID存在,表示服务已就绪;若报错“Failed to connect”,请确认supervisor.sock路径与权限是否匹配配置
四、添加首个被管进程(以Python脚本为例)
通过独立配置文件定义进程行为,实现解耦管理,避免直接修改主配置,提升可维护性与安全性。
1、在/etc/supervisor/conf.d/下创建新配置文件,例如:
sudo nano /etc/supervisor/conf.d/mybot.conf
2、写入如下内容(根据实际路径调整):
[program:mybot]
command=python3 /home/user/bot.py
directory=/home/user
autostart=true
autorestart=true
user=user
stdout_logfile=/var/log/supervisor/mybot.out.log
stderr_logfile=/var/log/supervisor/mybot.err.log
3、重新加载配置使新进程生效:
sudo supervisorctl reread
sudo supervisorctl update
4、执行 sudo supervisorctl status 查看mybot是否显示RUNNING;若为STARTING或FATAL,请检查command路径、权限及日志文件目录是否存在
五、常用管理命令速查
supervisorctl是交互式管理入口,支持即时控制所有托管进程,无需重启服务即可响应变更。
1、进入交互模式:
sudo supervisorctl
2、查看全部进程状态:
status
3、启动指定进程:
start mybot
4、停止指定进程:
stop mybot
5、重启指定进程:
restart mybot
6、执行 reload 命令将完全重启supervisord并重载全部配置,适用于重大配置结构调整;普通新增或修改建议仅用reread+update组合

















