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