Supervisor
Supervisor
Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems.
Supervisor 是一个客户端/服务器系统,允许用户在类 UNIX 操作系统上控制多个进程。
安装
有包括 pip(online & offline)、 包管理器(apt)等安装方式,以 apt 为例:
bash
sudo apt install supervisor设置开机自启动
bash
systemctl enable supervisord.service基本使用
配置文件
安装完成后,执行命令生成默认/示例配置文件在当前目录下
bash
# current directory
echo_supervisord_conf > supervisord.conf
# (Optional) root access required
echo_supervisord_conf > /etc/supervisord.conf添加程序
编辑 supervisord.conf 文件(上一步生产的),添加程序配置 [program:x]
# 上面为原始的配置,添加如下内容
[program:foo] # foo 为程序名称
command=/bin/cat # 程序命令supervisord
启动 supervisord 服务(supervisord 命令行参数参考 supervisord Command-Line Options )
bash
supervisord -c supervisord.conf这时候,supervisord 会启动 cat 进程并管理它。随后可以通过 supervisorctl 命令管理进程
supervisorctl
supervisorctl 是 Supervisor 的命令行客户端,用于与 Supervisor 服务器进行交互。
supervisorctl 有两种访问方式:
- 通过
supervisorctl命令行 - 通过
XML-RPC接口
通过 supervisorctl 命令行管理的方式可以进入交互模式,也可以直接执行命令
交互模式需要执行 supervisorctl 进入交互模式,随后可以执行如下命令
bash
# supervisorctl 交互模式中
supervisor> status # 查看所有进程状态
supervisor> start foo # 启动 foo 进程
supervisor> stop foo # 停止 foo 进程
supervisor> restart foo # 重启 foo 进程直接命令执行则可以直接执行命令,如下
bash
supervisorctl status # 查看所有进程状态
supervisorctl start foo # 启动 foo 进程
supervisorctl stop foo # 停止 foo 进程
supervisorctl restart foo # 重启 foo 进程supervisorctl 命令行参数参考 supervisorctl Command-Line Options