Supervisor是一个用python实现的进程管理工具,可以很方便的启动、重启、关闭、查看进程。除了对单个进程的控制,还可以同时操作多个进程,除此之外还可以监控进程,当进程由于某种原因崩溃或者误操作杀掉后,自动重启并发送事件通知。
安装:
>pip install supervisor
Supervisor组件
Supervisor包含4种组件。
1.Supervisord:服务端程序,主要功能是启动supervisord服务及其管理的子进程,记录日志,重启崩溃的进程等。
2.Supervisorctl:命令行客户端程序,提供类似shell的接口,通过Unix域套接字或TCP/IP套接字使用XML_RPC协议与Supervisord进程进行数据通信,主要功能是管理子进程。
3.Web Server:实现了在界面上管理进程,还能查看进程日志和清楚日志。Web Server其实是通过XML_RPC来实现的,可以向Supervisord请求数据。
4.XML_RPC接口:可以通过XML_RPC协议对web server进行远程调用,达到和Supervisorctl及web server一样的管理功能。
配置Supervisor
Supervisor的配置文件一般叫做supervisord.conf。
先创建一个统一存放日志的目录:
``>sudo mkdir /var/log/supervisord
通过Supervisor管理Memcached和Gunicorn:
[unix_http_server]
file=/tmp/supervisor.sock; 监听HTTP/XML_RPC请求,分号表示之后的内容是注释
;username=123
;password=123; 网络中不需要设置,所以都是注释的
[inet_http_server] ; 提供web管理界面
port=0.0.0.0:5000
username=123
password=123
[supervisord]
logfile=/var/log/supervisord/supervisord.log ;日志文件
logfile_maxbytes=50MB ;日志文件大小限制,超过会切分。
logfile_backups=20 ;切分后的日志保留的份数
loglevel=error ;日志级别,其他可选为info,debug,warn,trace
pidfile=/var/run/supervisord.pid
nodaemon=false ;使用daemon的方式启动
minfds=1024 ;可以打开的文件描述符最小值
minprocs=200 ;可以打开的进程数最小值
user=ubuntu ;启动supervisord进程使用的用户,默认是当前用户
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;使用unix域套接字的方式,文件路径必须和unix_http_server里面的设定匹配
prompt=web_develop ;定义提示文本,常用来区分不同的环境
[program:app_project]
command=gunicorn -w 3 project.run:app -b 0.0.0.0:9000 ;启动命令
autorestart=true ;程序异常退出后自动重启
stdout_logfile=/var/log/supervisord/project.log ;指定输出日志文件路径
Supervisor的注释要使用分号。program块中指定了要管理的进程,被管理的进程不能使用daemon模式,必须在前台运行。
Supervisor是一款用Python编写的进程管理工具,支持启动、重启、关闭和监控进程,具备自动重启功能,并能通过命令行或Web界面进行管理。本文介绍如何安装配置Supervisor,以及如何使用它来管理Memcached和Gunicorn等进程。

519

被折叠的 条评论
为什么被折叠?



