supervisor的使用

时间:2019-09-24
本文章向大家介绍supervisor的使用,主要包括supervisor的使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

环境:

centOS7.5 

python3与python2共存

 

目标:

让supervisor管理gunicorn,可以在gunicorn发生意外的情况下,会自动的重启。
1.supervisor的安装:
在系统级别的python环境下pip install supervisor。(这里如果你用的是python3写的项目,也可以直接用pip安装启动supervisor,也就是python2,supervisor安装在3或者2,对你的项目没有任何影响)
2.在项目的根目录下创建一个文件叫做program_name_supervisor.conf,目录结构如下:

 

配置文件内容如下:

注意:

1.注意supervisord配置文件行头不要有空格

2.gunicorn的命令要在虚拟环境下运行(因为gunicorn安装在flaskApi这个虚拟环境中)

# supervisor的程序名字
[program:gotest] #program_name 该名称可以随意设置
# supervisor执行的命令
command=/root/.virtualenvs/flaskApi/bin/gunicorn -w 4 -b 127.0.0.1:8000 wsgi:application
# 项目的目录
directory = /home/wangju/gitProject/flaskDemo
# 开始的时候等待多少秒
startsecs=0
# 停止的时候等待多少秒
stopwaitsecs=0  
# 自动开始
autostart=true
# 程序挂了后自动重启
autorestart=true
# 输出的log文件
stdout_logfile=programdir/log/supervisord.log  #这里你可能需要先创建log路径
# 输出的错误文件
stderr_logfile=programdir/log/supervisord.err#同上

[supervisord]
# log的级别
loglevel=info

# 使用supervisorctl的配置
[supervisorctl]
# 使用supervisorctl登录的地址和端口号
serverurl = http://127.0.0.1:9001

# 登录supervisorctl的用户名和密码
username = admin
password = admin123456

[inet_http_server]
# supervisor的服务器
port = :9001
# 用户名和密码
username = admin
password = admin123456

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 安装:

yum install -y epel-release

yum install -y supervisor

验证安装成功:

#测试是否安装成功
echo_supervisord_conf
#创建配置文件
echo_supervisord_conf > /etc/supervisord.conf

通过supervisor启动gunicorn

(flaskApi) [root@67 flaskDemo]# supervisord -c gotest_supervisor.conf

确定supervisord 服务并设置为随机启动:

 systemctl start supervisord.service && systemctl enable supervisord.service

 

浏览器输入url确认一下,gunicron已经把flask启动起来了,可以正常请求并返回内容

 

 

参考文档:

https://www.jianshu.com/p/d2da31b95a55

https://www.cnblogs.com/Dicky-Zhang/p/6171954.html

原文地址:https://www.cnblogs.com/kaerxifa/p/11577405.html