Supervisor 安装使用

安装

由于其基于 Python 开发,任何环境都可以通过 pip 安装:

pip install supervisor

此外,Ubuntu 系统可用如下方式安装:

apt-get install supervisor

MacOSX 系统可通过如下方式安装:

brew install supervisor

安装完成后会有如下几个命令工具

  • supervisord,Supervisor 的守护进程启动命令,运行时会启动一个守护进程,其负责管理的子进程,且可在所管理的进程出现崩溃时自动重启
  • supervisorctl,用户与 Supervisor 交互的工具,方便用户管理子进程,可用来 stop、start、restart
  • echo_supervisord_conf,输出默认配置

安装完成后可以用 echo_supervisord_conf 命令测试是否安装成功。

配置

如果是使用 apt 或者 brew 等各平台的软件包管理工具安装的 Supervisor,一般会自动创建默认的配置。如 apt 工具安装后,会创建 /etc/supervisor/supervisord.conf 默认配置;brew 工具安装后,会创建 /usr/local/etc/supervisord.ini 默认配置。但是使用 pip 安装后则可能不会自动创建默认配置,但可以手动创建:

echo_supervisord_conf > /etc/supervisor/supervisord.conf

通常情况下使用默认配置即可,此外还需要配置 program,即所要启动的子进程的配置。通过查看默认配置文件可知,supervisor 的配置使用的是 INI 格式,子进程的配置在 [program:x] 段。没了便于管理,通常将每个应用的配置写到一个文件中,并将这些文件统一放到一个目录下,如 /etc/supervisor/conf.d。这需要在 supervisord.conf 配置中做如下配置:

配置的含义为,包含  下所有以  结果的文件。[program:x] 段配置项说明:

配置示例:

使用

supervisor 的管理和使用只有两个命令:

  • supervisord: supervisor 的服务器端部分,用于 supervisor 启动
  • supervisorctl: 启动supervisor的命令行窗口,在该命令行中可执行 start、stop、status、reload 等操作

启动 supervisor 的服务器会默认启动所有应用:

supervisord -c /etc/supervisord.conf

supervisorctl

管理工具 supervisorctl 常用的子命令:

  • status: 查看程序状态
  • stop: 关闭程序
  • start: 启动程序
  • restart: 重启程序
  • reread: 读取有更新(增加)的配置文件,不会启动新添加的程序
  • update: 重启配置文件修改过的程序
  • tail: 查看进程日志

每次修改配置文件后需进入 supervisorctl,执行 reload, 改动部分才能生效,或者可以重启服务:

service supervisor reload

可以不用进入 supervisorctl 命令行,而直接在其后加上相应命令来完成操作,例如启动应用和查看状态:

默认的 supervisor 配置文件是放在 /etc/supervisord.conf 目录下,如果使用 supervisorctl 无法找到配置文件,其则无法获取与 supervisord 的连接方式,此时可能会有如下错误:

解决方式是使用 -c 指定配置文件位置:

supervisorctl -c /path/to/supervisord.conf status

或者将配置文件链接到 /etc 目录下:

ln -s /path/to/supervisord.conf /etc/

Web 管理界面

将配置文件中  部分打开并做相应配置,然后重启 supervisor 服务即可用浏览器管理所有应用。

添加开机启动服务

如果用 pip 或者 easy_instal 安装 supervisor,则不会默认将其添加到系统开机启动服务中。但这项工作可以自己来做,如果在 Ubuntu 系统下工作,用 apt 工具来安装则一切工作都会做好。

要添加系统服务首先需要在  中创建服务脚本,记得为脚本添加可执行权限 ,然后为将 supervisor 添加到系统服务中:

update-rc.d supervisor defaults

这样就 supervisor 就可以随系统开机启动,并且可以像系统服务那样来管理。

如果在 MacOSX 系统中使用 brew 安装,则可以使用 brew service 来添加开机启动:

brew services start supervisor

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月10日
下一篇 2019年7月10日

相关推荐