Linux-Supervisor进程管理

Supervisor 是一款使用 Python 开发的非常优秀的进程管理工具。它可以在类 UNIX 系统上让用户精确地监视与控制多组指定数量的服务进程。当监控的服务进程意外退出时,会尝试自动重启这些服务,以保持服务可用状态。

安装

Supervisor 官方 提供的安装方式较多,这里采用 pip 方式安装。

安装pip

安装Supervisor

通过 pip 安装 Supervisor:

安装 Supervisor 后,会出现 supervisorctl 和 supervisord 两个程序,其中 supervisorctl 为服务监控终端,而 supervisord 才是所有监控服务的大脑。查看 supervisord 是否安装成功:

开机启动一

将 supervisord 配置成开机启动服务,下载官方 init 脚本

修改关键路径配置:

移到该文件到/etc/init.d目录下,并重命名为 supervisor,添加可执行权限:

配置成开机启动服务:

开机启动二

  • Supervisor配置systemctl服务,开机自动启

配置

生成配置文件

Supervisord 安装后,需要使用如下命令生成配置文件。

主配置部分

supervisord.conf的主配置部分说明:

这部分我们不需要做太多的配置修改,如果需要开启 WEB 终端监控,则需要配置并开启 inet_http_server 项。

进程配置部分

Supervisor 需管理的进程服务配置,示例如下:

通常将每个进程的配置信息配置成独立文件,并通过 include 模块包含,这样方便修改和管理配置文件。

启动

配置完成后,启动 supervisord 守护服务:

常用的命令参数说明:

  • -c:指定配置文件路径

  • -n:是否非守护态运行

  • -l:日志文件目录

  • -i:唯一标识

查看 supervisord 启动情况:

监控进程

Supervisor 提供了多种监控服务的方式,包括 supervisorctl 命令行终端、Web 端、XML_RPC 接口多种方式。

命令终端

直接使用 supervisorctl 即可在命令行终端查看所有服务的情况,如下:

supervisorctl 常用命令列表如下;

  • status:查看服务状态

  • update:重新加载配置文件

  • restart:重新启动服务

  • stop:停止服务

  • pid:查看某服务的 pid

  • tail:输出最新的 log 信息

  • shutdown:关闭 supervisord 服务

Web

在配置中开启 inet_http_server 后,即可通过 Web 界面便捷地监控进程服务了。

Last updated