Supervisor:基础

Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems. 

组成

supervisord:

supervisor的服务端的名为supervisord。它负责在自己的调用中启动子程序,响应来自客户端的命令,重新启动崩溃或退出的子进程,记录其子进程stdout和stderr输出,以及生成和处理与子进程生命周期中的点相对应的“事件”。

服务端使用配置文件。这通常位于/etc/supervisord.conf中。此配置文件是“Windows-INI”样式配置文件。

supervisorctl:

supervisor的命令行客户端部分名为supervisorctl。它为supervisord提供的功能提供了类似shell的界面。从supervisorctl,用户可以连接到不同的supervisord进程(一次一个),获取由子进程控制的状态,停止和启动子进程,并获取supervisord的运行进程列表。

命令行客户端通过UNIX域套接字或Internet(TCP)套接字与服务器通信。客户端进程通常使用与服务器相同的配置文件,但其中包含[supervisorctl]部分的任何配置文件都可以使用。

也可以同web页面来查看和管理进程,需要激活配置文件中的[inet_http_server]部分,然后访问 http:localhost:9001 即可。

安装

可以在Linux Mac OS X Solaris FreeBSD UNIX等大部分平台运行,不能在windows平台运行,对python版本的要求,pyhton2需要在2.7以上,python3需要在3.4以上。

通过pip在线安装:

pip install supervisor

离线安装可以查看官网

启动supervisor之前需要添加配置文件,一般在 /etc/supervisord.conf 位置处。

启动

要启动 supervisord,只需要执行 supervisord 。可以添加其他的命令行选项(例如想读取配置文件启动 supervisord -c /etc/supervisord.conf )。如果要重启supervisord ,执行 kill -HUP pid,要强制关闭进程kill -9 pid

要启动 supervisorctl,只需要执行 supervisorctl 。就进入了supervisorctl的命令行交互页面,常见的命令:

status
  Get all process status info
pid
  Get the PID of supervisord.
pid <name>
  Get the PID of a single child process by name.
pid all
  Get the PID of every child process, one per line.
reload
  Restarts the remote supervisord
reread
  Reload the daemon’s configuration files, without add/remove (no restarts)
stop <name>
  Stop a process
stop <gname>:*
  Stop all processes in a group
stop <name> <name>
  Stop multiple processes or groups
stop all
  Stop all processes
start <name>
  Start a process
start <gname>:*
  Start all processes in a group
start <name> <name>
  Start multiple processes or groups
start all
  Start all processes
restart <name>
  Restart a process
restart <gname>:*
  Restart all processes in a group
restart <name> <name>
  Restart multiple processes or groups
restart all
  Restart all processes

Note: restart does not reread config files. For that, see reread and update.

更多命令可以参考 http://supervisord.org/running.html

配置文件 

Supervisor配置文件通常名为supervisord.conf。且 supervisord 和 supervisorctl 都会使用这个文件。

参考文档:

http://supervisord.org/introduction.html

原文地址:https://www.cnblogs.com/colin220/p/10831057.html