Supervisor 是一个进程管理工具,允许用户监控和控制多个进程。它适用于 UNIX/Linux 系统,特别是在需要管理多个后台任务时非常有用。
1. Supervisor 概述
- 功能:可以启动、停止、重启和监控进程。
- 配置:通过配置文件定义要管理的进程。
- WEB 界面:提供 Web 界面来监控进程状态。
2. 安装 Supervisor
在 Ubuntu 或 Debian 系统上,可以使用以下命令安装:
sudo apt update
sudo apt install supervisor
在 CentOS 或 RHEL 系统上:
sudo yum install epel-release
sudo yum install supervisor
3. Supervisor 配置文件
Supervisor 的主要配置文件通常位于 /etc/supervisor/supervisord.conf
。可以在此文件中设置全局选项和进程配置。
3.1 创建进程配置
创建一个新的配置文件,例如 /etc/supervisor/conf.d/myprogram.conf
,内容如下:
[program:myprogram]
command=/path/to/your/program # 要执行的命令
autostart=true # 启动时自动启动
autorestart=true # 进程退出后自动重启
stderr_logfile=/var/log/myprogram.err.log # 错误日志
stdout_logfile=/var/log/myprogram.out.log # 输出日志
3.2 配置说明
- command:要执行的命令。
- autostart:程序是否在 Supervisor 启动时自动启动。
- autorestart:程序退出后是否自动重启。
- stderr_logfile:标准错误输出的日志文件。
- stdout_logfile:标准输出的日志文件。
4. 启动和管理 Supervisor
4.1 启动 Supervisor
使用以下命令启动 Supervisor:
sudo service supervisor start
4.2 更新 Supervisor 配置
在添加或修改配置后,使用以下命令更新 Supervisor:
sudo supervisorctl reread # 重新读取配置文件
sudo supervisorctl update # 更新配置
4.3 管理进程
使用 supervisorctl
命令管理进程:
查看状态:
sudo supervisorctl status
启动进程:
sudo supervisorctl start myprogram
停止进程:
sudo supervisorctl stop myprogram
重启进程:
sudo supervisorctl restart myprogram
5. 使用 Web 界面(可选)
Supervisor 提供 Web 界面,便于监控和管理进程。要启用 Web 界面,请在 supervisord.conf
中添加以下内容:
[inet_http_server]
port=*:9001 # 监听的端口
username=user # 用户名
password=pass # 密码
重启 Supervisor 后,您可以通过 http://your_server_ip:9001
访问 Web 界面。