博客
关于我
supervisor进程管理工具,详细的部署gunicorn和flask部署步骤。
阅读量:525 次
发布时间:2019-03-07

本文共 2495 字,大约阅读时间需要 8 分钟。

配置Supervisor以监控和管理生产环境中的应用程序是一个常见的任务。以下是优化后的文档,提供一个清晰且易于理解的安装和配置指南。

Supervisor配置指南

安装Supervisor

通过Terminal安装Python的Supervisor包:

sudo pip install supervisor

生成配置文件

根据文档生成默认配置文件:

echo_supervisord_conf > supervisord.conf

打开配置文件(使用vim):

vim supervisord.conf

在文件末尾添加以下内容:

[include]files = /etc/supervisor/*.conf

将配置文件复制到/etc目录:

sudo cp supervisord.conf /etc/

创建/etc/supervisor文件夹来存储项目配置:

sudo mkdir /etc/supervisorsudo chmod 755 /etc/supervisor

进入文件夹并创建项目配置文件:

cd /etc/supervisortouch 项目名.conf

在配置文件中添加监控组(例如backend组)和相关程序设置:

[group:backend]programs=3dvserver[program:3dvserver]command=/etc/supervisor/scripts/3dv_script.shdirectory=/home/tanzhihao/3dview_remoteuser=rootautorestart=trueredirect_stderr=falseloglevel=infostopsignal=KILLstopasgroup=truekillasgroup=true

继续创建脚本目录并添加脚本:

sudo mkdir /etc/supervisor/scriptssudo chmod 777 /etc/supervisor/scripts

创建并编辑脚本文件(例如3dv_script.sh):

#!/bin/bashsource ~/.bashrcexport FLASK_ENV=productioncd /home/tanzhihao/3dview_remoteexec gunicorn -w 2 -b 127.0.0.1:5005 --workers 2 --timeout 30 --bind 127.0.0.1:5005 --workers 2 --tclient 2 'gevent' manage:app

赋予脚本执行权限:

sudo chmod +x /etc/supervisor/scripts/3dv_script.sh

启动Supervisor并进入管理界面:

sudo supervisord -c /etc/supervisor/supervisord.confsupervisorctl

常见问题解决

socket文件路径问题

如果连接到/var/run/supervisor/supervisor.sock失败,可以手动创建该文件:

sudo touch /var/run/supervisor/supervisor.socksudo chmod 777 /var/run/supervisor/supervisor.sock

并在配置文件中修改socket路径:

[unix_http_server]file=/var/run/supervisor/supervisor.sock

然后更新配置:

sudo supervisorctl update

权限问题

检查文件夹和文件权限是否正确:

sudo chmod 777 /var/run/supervisorsudo chmod 777 /var/log/supervisor.log

进程状态异常

使用ps命令检查进程:

ps aux | grep supervisorps aux | grep gunicorn

如果状态显示为“STATE: STARTING”,确保所有进程已停止后重新启动:

supervisorctl stop allsupervisord -c /etc/supervisor/supervisord.confsupervisorctl start all

Gunicorn配置

manage.py所在目录创建gunicorn.conf,添加以下内容:

import multiprocessingpreload_app = Trueworkers = 2threads = 2bind = '127.0.0.1:5005'daemon = 'false'worker_class = 'gevent'worker_connections = 2000pidfile = '/var/run/gunicorn.pid'accesslog = '/home/tanzhihao/3dview_remote/gunlog/access.log'errorlog = '/home/tanzhihao/3dview_remote/gunlog/error.log'loglevel = 'warning'

/etc/supervisor/scripts内的脚本文件内容:

#!/bin/bashsource ~/.bashrcexport FLASK_ENV=productioncd /home/tanzhihao/3dview_remote# 执行Gunicorn命令,可使用以下命令:# exec gunicorn -c gunicorn.conf manage:app

配置文件内容无需更改以适用于Gunicorn。

总结

通过以上步骤,成功配置并运行了Gunicorn和Supervisor。监控进程状态:

supervisorctl status

确保配置文件路径和权限正确,遇到异常情况时及时排查。

转载地址:http://xyvnz.baihongyu.com/

你可能感兴趣的文章
openEuler Summit 2022 成功举行,开启全场景创新新时代
查看>>
openEuler 正式开放:推动计算多样化时代的到来
查看>>
OpenEuler23.03欧拉系统_安装瀚高数据库企业版6.0.4_openeuler切换root用户_su:拒绝权限_passwd: 鉴定令牌操作错误---国产瀚高数据库工作笔记001
查看>>
OpenEuler23.03欧拉系统_安装瀚高数据库企业版6.0.4_踩坑_安装以后系统无法联网_启动ens33网卡---国产瀚高数据库工作笔记002
查看>>
OpenFeign 入门与实战
查看>>
OpenFeign源码学习
查看>>
OpenFeign的使用方式成功解锁
查看>>
OpenFeign组件声明式服务调用
查看>>
openfeign远程调用不起作用解决_使用Spring Boot的spring.factories进行注入---SpringCloud Alibaba_若依微服务框架改造---工作笔记007
查看>>
openfire开发(四)消息拦截器
查看>>
openfire源码解读之将cache和session对象移入redis以提升性能
查看>>
Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)
查看>>
OpenForest 开源项目安装与使用指南
查看>>
OpenGL glBlendFunc() 设置颜色混合 透明度叠加计算
查看>>
OpenGL 中“立即模式”是什么意思?
查看>>
opengl 教程(15) 摄像机控制(2)
查看>>
opengl 深度详解,多重采样时,如何在OpenGL纹理中解析深度值?
查看>>
OpenGL 的内置矩阵种种
查看>>
OpenGL/OpenGL ES 入门:基础变换 - 初识向量/矩阵
查看>>
OpenGL中shader读取实现
查看>>