supervisor入门

  • 2017-04-25 11:20:32
  • 403
  • 0

Supervisor

一、定义:

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

It shares some of the same goals of programs like launchddaemontools, and runit. Unlike some of these programs, it is not meant to be run as a substitute for init as “process id 1”. Instead it is meant to be used to control processes related to a project or a customer, and is meant to start like any other program at boot time.
二、解释:

Supervisor 是一个允许用户在类unix操作系统上监控和控制一批进程的客户端/服务系统。

它实现了像程序:launchd、daemontools、runit  ​一样的功能。 但是不像上面这些程序,它并不是通过以'process id 1'方式初始化替代,而是直接控制与用户或者项目相关的那些进程。

三、举例:

Superviosor 的安装与用法很简单:

安装: pip install supervisor

用法:

1、到supervisor的安装目录执行:echo_supervisord_conf > /etc/supervisord.conf ​,如果无root权限可直接执行:echo_supervisord_conf > supervisord.conf ​然后启动的时候使用 -c 参数来指定对应的配置文件, 如:supervisord -c supervisord.conf

2、在配置文件里面配置服务, 如:

[program:myblog]
command=gunicorn -c guni.conf manage:app --preload    ; supervisor启动命令
directory=/Users/aoyanming/projects/myblog/                                                 ; 项目的文件夹路径
autostart=false                                                                         ; 是否自动启动
autorestart=false                                                                       ; 是否自动重启
environment=PYTHONPATH=/usr/bin/python
stdout_logfile=/Users/aoyanming/projects/myblog/log/gunicorn.log                           ; log 日志
stderr_logfile=/Users/aoyanming/projects/myblog/log/gunicorn.err 

注意:environment一定要加上python路径,如果supervisor不是安装在python环境下的话
 

定义中提到supervisor是客户端/服务系统,前面讲述的只是服务端的配置以及启动,那么客户端自然是用来控制服务端里面配置的进程的。在服务端启动后, 默认(当然可以配置)会在本地
9001端口启动web服务,用来对已配置好的进程进行相关的控制以及监控操作。 如此,nginx搞个反向代理, 另外配个域名解析到对应的服务器IP,这样项目就能做到实时控制以及监控 。界面如图: 

 

 


发表评论

* *