Supervisor 在 Rocky Linux 上的安装与使用指南
Supervisor 是一个用 Python 编写的进程控制系统,允许用户监控和控制类 UNIX 系统上的多个进程。下面是在 Rocky Linux 上安装和配置 Supervisor 的完整指南。
一、安装 Supervisor
1. 安装 EPEL 仓库(如果尚未安装)
sudo dnf install epel-release
sudo dnf update
2. 安装 Supervisor
sudo dnf install supervisor
3. 启动并设置开机自启
sudo systemctl enable supervisord
sudo systemctl start supervisord
4. 验证安装
sudo supervisorctl status
二、基本配置
1. 主配置文件位置
主配置文件位于 /etc/supervisord.conf
2. 包含自定义配置
默认配置会包含 /etc/supervisord.d/
目录下的所有 .ini
文件:
[include]
files = /etc/supervisord.d/*.ini
三、配置管理进程
1. 创建自定义进程配置
在 /etc/supervisord.d/
中创建新的配置文件,例如 myapp.ini
:
[program:myapp]
command=/usr/bin/python3 /path/to/your/app.py
directory=/path/to/your/app
user=yourusername
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log
environment=PYTHONPATH="/path/to/your/app"
2. 常用配置选项
选项 | 说明 |
---|---|
command |
要执行的命令 |
directory |
运行命令前切换到的目录 |
user |
运行进程的用户 |
autostart |
是否随 Supervisor 启动而自动启动 |
autorestart |
是否自动重启 (true/false/unexpected) |
startretries |
启动失败后的重试次数 |
stderr_logfile |
标准错误日志文件 |
stdout_logfile |
标准输出日志文件 |
environment |
设置环境变量 |
四、Supervisor 命令使用
1. 重新加载配置
sudo supervisorctl reread
sudo supervisorctl update
2. 管理进程
# 启动进程
sudo supervisorctl start myapp
# 停止进程
sudo supervisorctl stop myapp
# 重启进程
sudo supervisorctl restart myapp
# 查看所有进程状态
sudo supervisorctl status
# 查看特定进程状态
sudo supervisorctl status myapp
3. 查看日志
# 查看主日志
sudo tail -f /var/log/supervisor/supervisord.log
# 查看应用日志
sudo tail -f /var/log/myapp.out.log
五、Web 界面(可选)
1. 启用 Web 界面
编辑 /etc/supervisord.conf
,取消注释或添加以下内容:
[inet_http_server]
port=*:9001
username=admin
password=yourpassword
2. 重启 Supervisor
sudo systemctl restart supervisord
3. 访问 Web 界面
通过浏览器访问 http://your-server-ip:9001
六、高级配置
1. 进程组管理
[group:mygroup]
programs=myapp1,myapp2
priority=999
2. 事件监听
[eventlistener:memmon]
command=memmon -p myapp=200MB
events=TICK_60
3. 日志轮转
安装 logrotate
并创建 /etc/logrotate.d/supervisor
:
/var/log/supervisor/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 root root
postrotate
/usr/bin/supervisorctl pid > /dev/null && /usr/bin/supervisorctl reopen_logs
endscript
}
七、故障排除
1. 常见问题解决
-
配置更改不生效:
sudo supervisorctl reread sudo supervisorctl update
-
进程无法启动: 检查
/var/log/supervisor/supervisord.log
和应用的错误日志 -
权限问题: 确保配置中指定的用户有执行命令和写入日志的权限
2. 日志位置
- 主日志:
/var/log/supervisor/supervisord.log
- 子进程日志:在各自配置中指定的位置
八、安全注意事项
- 不要以 root 用户运行应用程序
- Web 界面应设置强密码
- 考虑限制 Web 界面的访问 IP
- 定期检查日志文件
- 保持 Supervisor 更新到最新版本
通过以上步骤,您可以在 Rocky Linux 上成功安装和配置 Supervisor,实现对关键进程的有效管理和监控。
No Comments