Supervisor 组件
- Supervisord : 服务端程序,它的主要功能是启动 Supervisord 服务及其管理的子进程,记录日志,重启崩溃的进程等。
- Supervisorctl : 命令行客户端程序,它提供一个类似 Shell 的接口,通过 UNIX 域套接字或者 TCP/IP 套接字使用 XML_RPC 协议与 Supervisord 进程进行数据通信。它的主要功能就是管理(启动、关闭、重启、查看状态等)子进程。
- Web Server : 实现了在界面上管理进程,还能查看进程日志和清除日志。Web Server 其实是通过 XML_RPC 来实现的,可以向 Supervisord 请求数据。它配置爱 [inet_http_server] 块里面。
- XML_RPC 接口 : 可以通过XML-RPC 协议对 Web Server 进行远程调用,达到和 Supervisorctl 以及 Web Server 一样的管理功能。
配置 Supervisor
- Supervisor 的配置文件一般都叫 supervisord.conf。启动 Supervisord 的时候会按照如下路径寻找配置文件:
- 当前目录下的 supervisord.conf ($CWD/supervisord.conf)。
- 当前目录的 etc 目录下的 supervisord.conf ($CWD/etc/supervisord.conf)
- 相对于可执行文件 supervisord 的上一级的 etc 目录下的 supervisord.conf (…/etc/supervisord.conf)。
- 相对于可执行文件 supervisord 的上一级的 supervisord.conf (…/supervisord.conf)
- 可以使用 -c 选项指定不符合如上要求的配置文件路径
使用 Supervisor
分为三种:supervisorctl 命令行方式管理进程、通过 web 方式管理进程和通过 XML_RPC 接口来管理进程。