Supervisor 进程管理
Supervisor 是一个 Python 编写的进程管理工具,用于监控和控制 Unix/Linux 系统上的进程。 详细教程博客文章简介
Supervisor 可以:- 自动启动、停止、重启进程
- 监控进程状态,崩溃后自动重启
- 提供 Web 界面管理
- 记录进程输出日志
- 进程分组管理
安装
Ubuntu/Debian
CentOS/RHEL
Python pip
配置文件
主配置文件位置:- Ubuntu:
/etc/supervisor/supervisord.conf - 自定义程序配置:
/etc/supervisor/conf.d/*.conf
基本配置结构
常用命令
管理 Supervisor 服务
管理进程
配置示例
Python Web 应用
Node.js 应用
Celery Worker
进程组
Web 界面
启用 Web 管理界面:环境变量
日志管理
优雅关闭
多进程管理
故障排查
查看日志
常见问题
-
进程启动失败
- 检查命令路径是否正确
- 检查用户权限
- 查看日志文件
-
进程频繁重启
- 增加
startsecs值 - 检查程序本身是否有问题
- 增加
-
配置不生效
最佳实践
- 使用配置文件分离:每个程序一个配置文件
- 设置合理的日志大小:避免磁盘占满
- 使用专用用户:提高安全性
- 进程分组:方便批量管理
- 设置环境变量:配置与代码分离
- 监控告警:结合监控系统使用
- 定期备份配置:版本控制配置文件
替代方案
- systemd:Linux 系统服务管理
- PM2:Node.js 进程管理器
- circus:Python 进程管理
- monit:系统监控和进程管理
