supervisord
时间: 2025-01-03 21:33:24 浏览: 4
### Supervisord 使用指南和配置教程
#### 什么是Supervisord
Supervisord 是一个进程管理工具,可以用来启动、停止以及重启 Python 应用程序和其他类型的子进程。它还能够自动重新启动崩溃的应用程序,并提供了一个Web界面来监控这些应用程序的状态。
#### 安装Supervisord
对于大多数Linux发行版来说,可以通过包管理器轻松安装 supervisord 。例如,在基于Debian/Ubuntu系统的环境中,命令如下所示:
```bash
sudo apt-get update && sudo apt-get install supervisor
```
而在RedHat/CentOS环境下,则应执行以下指令完成安装工作:
```bash
yum install epel-release
yum install supervisor
```
#### 配置Supervisord
默认情况下,supervisord 的主要配置文件位于 `/etc/supervisor/conf.d/` 文件夹下。每一个被监督的服务都需要创建对应的 `.conf` 文件放置在此处。下面是一个简单的例子:
假设有一个名为 `myapp.py` 的Python脚本希望由 supervisord 来管理和控制其生命周期,那么可以在上述路径新建一个叫做 `myapp.conf` 的文件,内容大致如此[^1]:
```ini
[program:myapp]
command=/usr/bin/python /path/to/myapp.py ; 启动命令
autostart=true ; 自动启动
startsecs=10 ; 成功启动后等待多少秒才认为是正常运行
autorestart=true ; 当异常退出时自动重启
stderr_logfile=/var/log/myapp.err.log ; 错误日志位置
stdout_logfile=/var/log/myapp.out.log ; 输出日志位置
user=nobody ; 运行该服务的用户身份
directory=/tmp ; 工作目录
environment=A="1",B="2" ; 设置环境变量
stopsignal=QUIT ; 停止信号,默认为TERM
stopwaitsecs=10 ; 发送结束信号后的等待时间
killasgroup=false ; 是否向整个组发送SIGKILL信号
priority=998 ; 加载顺序优先级
numprocs=1 ; 子进程数量
process_name=%(program_name)s_%(process_num)02d ; 子进程名称模板
redirect_stderr=true ; 将标准错误重定向到标准输出流
serverurl=http://%(SERVER_IP):9001 ; XML-RPC接口地址
```
以上只是一个基础示例,实际应用中可能还需要根据具体需求调整参数设置。
#### 启动与管理Supervisord
一旦完成了必要的配置更改之后,就可以通过下列命令使新的设定生效并开启守护进程了:
```bash
sudo systemctl enable supervisord # 设定开机自启
sudo service supervisord start # 启动supervisord服务
sudo supervisorctl reread # 让supervisord读取最新的配置文件
sudo supervisorctl update # 更新正在运行中的程序列表
```
如果想要查看当前所有受控进程中哪些处于活动状态的话,只需简单输入 `sudo supervisorctl status` 即可获得相关信息反馈。
阅读全文