Python系统管理——Supervisor

天道酬勤

Supervisor 组件

  1. Supervisord : 服务端程序,它的主要功能是启动 Supervisord 服务及其管理的子进程,记录日志,重启崩溃的进程等。
  2. Supervisorctl : 命令行客户端程序,它提供一个类似 Shell 的接口,通过 UNIX 域套接字或者 TCP/IP 套接字使用 XML_RPC 协议与 Supervisord 进程进行数据通信。它的主要功能就是管理(启动、关闭、重启、查看状态等)子进程。
  3. Web Server : 实现了在界面上管理进程,还能查看进程日志和清除日志。Web Server 其实是通过 XML_RPC 来实现的,可以向 Supervisord 请求数据。它配置爱 [inet_http_server] 块里面。
  4. XML_RPC 接口 : 可以通过XML-RPC 协议对 Web Server 进行远程调用,达到和 Supervisorctl 以及 Web Server 一样的管理功能。

配置 Supervisor

  • Supervisor 的配置文件一般都叫 supervisord.conf。启动 Supervisord 的时候会按照如下路径寻找配置文件:
    1. 当前目录下的 supervisord.conf ($CWD/supervisord.conf)。
    2. 当前目录的 etc 目录下的 supervisord.conf ($CWD/etc/supervisord.conf)
    3. 相对于可执行文件 supervisord 的上一级的 etc 目录下的 supervisord.conf (…/etc/supervisord.conf)。
    4. 相对于可执行文件 supervisord 的上一级的 supervisord.conf (…/supervisord.conf)
    • 可以使用 -c 选项指定不符合如上要求的配置文件路径

使用 Supervisor

  分为三种:supervisorctl 命令行方式管理进程、通过 web 方式管理进程和通过 XML_RPC 接口来管理进程。