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

安装
Supervisor 官方 提供的安装方式较多,这里采用 pip 方式安装。
安装pip
安装Supervisor
通过 pip 安装 Supervisor:
安装 Supervisor 后,会出现 supervisorctl 和 supervisord 两个程序,其中 supervisorctl 为服务监控终端,而 supervisord 才是所有监控服务的大脑。查看 supervisord 是否安装成功:
开机启动一
将 supervisord 配置成开机启动服务,下载官方 init 脚本。
修改关键路径配置:
移到该文件到/etc/init.d目录下,并重命名为 supervisor,添加可执行权限:
配置成开机启动服务:
开机启动二
配置
生成配置文件
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