Skip to content

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

配置文件

⏰ 最后更新于: