【部署】 supervisor使用

Supervisor 详解及部署 Supervisor(监督人),在Linux中Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类Linux/unix的机器上,supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。 阅读详情

supervisor安装与基本配置

让supervisor管理uwsgi、gunicorn、celery等进程,可以在uwsgi、gunicorn、celery等发生意外的情况下,会自动的重启。
1. supervisor的安装:在系统级别的python环境下pip install supervisor。
2. 在项目的根目录下创建一个文件叫做supervisor.conf。内容如下:
[supervisord]
#log的级别
loglevel=info

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

[supervisorctl]
#使用supervisorctl登录的地址和端口号
serverurl = http://127.0.0.1:9001
#登录supervisorctl的用户名和密码
username = admin
password = admin

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

# 以上这写可以不用配置(有的默认注释,有的有默认值,不用动即可)
# supervisor的程序名字(这个域是新添加的,可以添加多个)
[program:app]
# supervisor执行的命令
command=uwsgi –ini uwsgi.ini
#项目的目录
directory = /srv/django
#开始的时候等待多少秒
startsecs=0
#停止的时候等待多少秒
stopwaitsecs=0
#自动开始
autostart=true
#程序挂了后自动重启
autorestart=true
#输出的log文件
stdout_logfile=/srv/django/log/supervisord.log
#输出的错误文件
stderr_logfile=/srv/django/log/supervisord.err
然后使用命令supervisord -c supervisor.conf运行就可以了。
以后如果想要启动uwsgi,就可以通过命令supervisorctl -c supervisor.conf`进入到管理控制台,然后可以执行相关的命令进行管理:
* status # 查看状态
* start program_name #启动程序
* restart program_name #重新启动程序
* stop program_name # 关闭程序
* reload # 重新加载配置文件
* quit # 退出控制台

注意:
1、先启动supervisor服务端:supervisord -c supervisor.conf
2、然后再启动控制台:supervisorctl -c supervisor.conf

supervisor命令使用

 Supervisord管理 Supervidor安装完成以后有两个可用的命令行supervisord和supervisorctl
 ? supervisord,                     初始启动Supervisord,启动、管理配置中设置的进程。
 ? supervisorctl stop programxxx     停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
 ? supervisorctl start programxxx    启动某个进程
 ? supervisorctl restart programxxx  重启某个进程
 ? supervisorctl stop groupworker    重启所有属于名为groupworker这个分组的进程(start,restart同理)
 ? supervisorctl stop all            停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
 ? supervisorctl reload              载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
 
 注意:
 1、显示用stop停止掉的进程,用reload不会自动重启。
 2、可以使用--help查看命令更多的用法,启动时遇到配置文件没有放到默认路径(默认路径为/etc/supervisor.conf),必须使用-c 参数指定配置文件路径来启动

supervisor管理celery

supervisor管理worker配置说明

# stopasgroup=true 这个参数必须有,否重celery的子进程不能全部结束
[program:celery_worker]
command=celery -A app.celery worker -l info -Q default,q1 --concurrency=10 -n node1-worker-%(process_num)s@%%h   ; 启动命令
process_name=%(program_name)s-%(process_num)d ; 进程名
numprocs=3                    ; 进程数量
directory=/Users/aaa/PycharmProjects/flask_test         ; 工作路径
;umask=022                     ; umask for process (default None)
priority=999                  ; 优先级。优先级低,最先启动,关闭的时候最后关闭
autostart=true                ; supervisor启动后自动启动
startsecs=1                   ; 启动多少秒后是running认为启动成功
;startretries=3                ; 最大启动重试次数 (default 3)
autorestart=true               ; 子进程挂掉自动重启 (def: unexpected)
;exitcodes=0                   ; 'expected' exit codes used with autorestart (default 0)
stopsignal=TERM               ; 进程停止信号,停止celery worker时使用TERM, (TERM, HUP, INT, QUIT, KILL, USR1, or USR2)
stopwaitsecs=30               ; 等待停止最大时间,超过此时间会强制kill (default 10)
stopasgroup=true              ; 停掉子进程的子进程(保证不会出现孤儿进程), 
;killasgroup=true             ; kill进程及其子进程,直接发送KILL信号不会等待进程退出
;user=chrism                   ; 管理子进程的用户
redirect_stderr=true          ; redirect 日志 stderr to stdout
stdout_logfile=/Users/aaa/PycharmProjects/flask_test/log/node1/celery-worker-1.log   ; 日志
stdout_logfile_maxbytes=50MB   ; 单个日志文件最大大小  (default 50MB)
stdout_logfile_backups=20     ; 日志文件数量  (default 10)
;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
;stdout_syslog=false           ; send stdout to syslog with process name (default false)
;stderr_logfile=/Users/aaa/PycharmProjects/flask_test/log/default/celery_err.log       ; 错误日志
;stderr_logfile_maxbytes=10MB   ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10     ; # of stderr logfile backups (0 means none, default 10)
;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stderr_events_enabled=false   ; emit events on stderpidr writes (default false)
;stderr_syslog=false           ; send stderr to syslog with process name (default false)
environment=PATH="/Users/aaa/anaconda3/envs/flask_test/bin"      ; 环境变量,子进程间不共享
;serverurl=AUTO                ; override serverurl computation (childutils)

参考:
https://www.jianshu.com/p/eebefeb92cf0
https://www.jianshu.com/p/0b9054b33db3

linux部署Supervisor 步骤1:安装依赖包 yum -y install python-setuptools 步骤2:下载supervisor软件包 wget https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz 步骤3:解压并安... 阅读详情

相关推荐

supervisor自运维部署操作

自运维用supervisor部署服务1.拉取git上的代码2.使用supervisor启动XXX项目(一般只需操作第5步即可)附:杀死指定的进程XXX 1.拉取git上的代码 git pull https://github.com/XXX.git 如果冲突了,可参考这篇文章 方法1:本地git stash,git pull,还原git stash pop stash@{0},打开文件解决冲突v...

不随缘的随心,能改变的随性 394

supervisor搭建与配置

supervisor 是管理程序进程启动和状态,当程序进程死掉,supervisor会把这个程序进程重新拉起。 python版本最低要2.7 pip install supervisor 就可以安装了。 如果是python 3.5以上 git clone https://github.com/Supervisor/supervisor.git unzip supervisor-master....

jacketyding的博客 1601

Supervisor和Gunicorn部署Flask项目

基本环境 最简单的Flask Web应用: 新建文件夹myproject,里面就一个文件:myapp.py from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hi! It works!' if __name__=='__main__': app.run(host='0.0.0.0') 想启动该应用,只要运行python myapp.py就可以在浏览器http://l

Shallow的博客 1628

Supervisor 之部署

概念 supervisor:安装的软件的名称。 supervisord:装好supervisor后,supervisord用于启动supervisor服务。 supervisorctl:用于管理supervisor配置文件中program和supervisor服务本身。 产生配置文件 echo_supervisord_conf > /etc/supervisor/supervisord.conf 子进程 指定子进程目录,即每个守护进程,的启动文件。 supervisor服务启动脚本

菜鸟厚非 1849

爬虫部署:从零到一讲述 Supervisor 的详细使用

摘要: 本文系统讲解如何通过Supervisor实现爬虫程序的工业化部署。作为C/S架构的进程控制系统,Supervisor提供自动重启、日志管理、进程监控等核心功能,适用于单机部署的中低频爬虫场景。文章从安装配置入手,详细说明如何编写符合规范的爬虫程序(需保持前台阻塞运行),并给出多任务分组、日志轮转等最佳实践方案。通过Supervisor的集中管理能力,可将脆弱的手动爬虫转变为稳定可靠的生产级服务。 (字数:149字)

数据知道的博客 1820

Android SDK安装教程(超详细),从零基础入门到精通,从这篇开始_android sdk下载安装

Android SDK安装教程(超详细),从零基础入门到精通,从这篇开始_android sdk下载安装

Jinmindong 5013

部署神器-supervisor

supervisor

u011250186的博客 538

【计算机三级-数据库技术】操作题大题(第1套)

从触发器的语法中可知,【1】处应该填写的是执行触发器的表,【2】处应该填写指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。使用FOR或AFTER选顶定义的触发器为后触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器。转换成新的独立的模式,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。实体的转换:在从ER图转换为关系模式时,一个实体转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。

放纵小开爱的博客 1101

supervisord部署使用超级详细版

supervisord部署使用超级详细版 一. 安装 pip 命令(安装python 环境) 因为 supervisord本身是基于Python开发的,所以在使用时需要先安装Python 的运行环境 1.下载阿里的epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 2.安装pip yum -y install python-pip 3.设置socks代理,安装pysocks库。 pip i

weixin_44424086的博客 1622

车载监控系统升级指南:如何用XS9950A替换TP9950实现高清视频解码(附配置代码)

本文提供了从TP9950升级至XS9950A车载视频解码芯片的完整实战指南。详细解析了硬件设计调整、PCB布局要点,并重点分享了通过I2C配置寄存器实现高清HDCCTV视频解码与同轴音频集成的软件驱动代码与调试技巧,助力工程师平滑完成系统升级。

weixin_29268637的博客 365

AGV舵轮选型实战:从核心参数到精准计算的完整指南

本文提供了一份详尽的AGV舵轮选型实战指南,强调从经验决策转向数据驱动。文章系统讲解了如何将工况需求转化为核心参数,并通过牵引力、扭矩、功率等关键计算步骤,指导工程师完成精准选型,避免因选型不当导致的运行故障与效率低下。

醉三国 495

Django使用Supervisor部署流程

Supervisor是Python的一套通用的进程管理程序,将命令行进程变为后台dameon(守护进程),可以方便对的监听、启动、停止、重启一个或多个进程。通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动。只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写入即可在子进程挂掉后,supervisor可以选择自动重启或者报警。此外,supervisor还可以为每个子进程设置一个非root的user,这user可以管理他对应的进程。

hhz0001的博客 1196

完整指南:从基础到高级使用 Semantic Kernel

通过本文的学习,你已经掌握了从基础到高级的使用方法。安装并配置。使用简单的文本生成和自然语言处理任务。利用任务链和工具扩展构建复杂的工作流。通过记忆管理上下文,创建更智能的应用。扩展多模态处理能力,集成图像和音频分析。将应用部署到云端,并通过 Azure Functions 提供智能服务。无论是构建简单的对话应用,还是创建多模态智能服务,都提供了强大的工具和灵活的扩展机制。希望这篇文章能帮助你更好地理解并运用这个框架,构建出更加智能和高效的应用。

net core ,前端 ,python 全栈开发 2805

python supervisor flask_supervisor配合uwsgi部署flask应用

这已经是第N次来部署flask应用了, 但是每次都花了不少时间在配置上面, 这里一次性记录下, 备个忘~写在前面其实使用uwsgi来部署flask应用在官网上已经有较为详细的 文档 了, 推荐先读一下.先解决一些问题:为何使用 uwsgi 来部署应用? 方便管理; 较为常见的部署方式; 可配置性较强为何使用 supervisor 来管理? 方便管理下面介绍尝试用它俩部署个最简单的flask应用.准...

weixin_39633917的博客 190

Docker 磁盘占用过多问题处理过程记录

Docker 磁盘爆满问题处理

MR.骑士道 3554

【案例讲解】LVGL关于旋转的配置

在实现项目中,因为横竖屏的关系,需要对其做90度的旋转。配置旋转时发现一些局部刷新控件,旋转后效果不对。异常图标正常图标。

Bigan(安)的博客 4284

Gunicorn+Supervisor部署flask接口

Gunicorn+Supervisor部署flask接口部署 Flask 应用程序使用 Gunicorn 和 Supervisor 是一种常见的做法,可以提高应用程序的稳定性和可用性。Gunicorn 作为 WSGI HTTP 服务器来运行 Flask 应用程序,而 Supervisor 用于监控 Gunicorn 进程,确保它在出现问题时自动重启。

liangzaixiaozhou的博客 688

把 SAP 输出稳稳落到 PDF:从 SPAD 前端打印到 ABAP 程序级转换的一套方法

摘要:本文介绍了三种在SAP系统中将报表输出转为PDF文件的方法。路线A通过SPAD配置前端输出设备,结合Windows打印机设置实现用户交互式PDF保存;路线B在SP01事务码中将已有Spool请求另存为PDF,适用于补救导出;路线C通过ABAP程序自动转换Spool为PDF,适合批量处理。文章详细说明了配置步骤,并针对常见问题(如乱码、文件格式错误等)提供了排查思路。三种方案分别适用于不同场景,用户可根据实际需求选择最合适的PDF导出方式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 221

supervisor部署

Supervisor部署 安装指令 sudo apt-get install supervisor 获取supervisor配置文件所有说明 sudo vim configure.doc sudo chmod 777 configure.doc sudo echo_supervisord_conf >> configure.doc 可以查看configure.doc中的各个配置项,每一项都有解释说明

sxpsxp12的博客 589

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

部署项目,supervisor接管一切服务

前言 最近在部署项目时使用了supervisor本来只是想用来接管daphne的,后来尝试用来接管uwsgi服务发现也可以,到最后通过supervisor接管了所有得服务。 supervisor 首先就是supervisor的命令及配置,首先需要创建配置文件supervisord.conf,路径可以随便选,一般会放在部署的项目中,以下是配置文件 [unix_http_server] file=/[自选路径]/supervisor.sock # 创建supervisor.sock [

qq_41100991的博客 342

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Supervisor + Nginx + Python3 部署Tornado

文章目录Supervisor 部署tornado#1 环境#2 需求分析#3 总体分工#4 Supervisor#4.1 CentOS安装Supervisor#4.2 解释说明两个文件的作用#4.3 节点配置文件#4.4 tornado应用#4.5 操作#4.6 管理 Supervisor#5 Nginx Supervisor 部署tornado #1 环境 CentOS 7.6 Python3.7 #2 需求分析 Tornado与Python的其他web框架不同,它自带HTTPServer Torn

Auto 587

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ubuntu环境使用supervisor部署Go应用

首先进行前期准备,安装supervisor sudo apt-get install supervisor 安装后,通过Supervisor附送的贴心的小脚本生成默认的配置文件 sudo echo_supervisord_conf > /etc/supervisord.conf 然后打开配置文件确认下(/etc/supervisord/supervisord.conf),是...

wanghao3616的专栏 546

python supervisor flask_flask+uwsgi+supervisor部署流程

背景:小鱼最近搞了个工程,python用的2.7(用3也可以),后端使用的是flask,服务器用的linux,使用flask+uwsgi+supervisor部署 ,查阅相关博客、调试、实操,已经搞起来了supervisor介绍如下:supervisor:进程管理工具,可以很方便的管理你的工程 启动、重启、停止等操作,不用再去自己写脚本控制;想更深入了解可以搜下相关supervisor资料介绍安...

weixin_39573822的博客 216

Centos,Ubuntu部署Supervisor

Supervisor部署 Centos7 安装 #yum install epel-release # yum -y install supervisor # systemctl enable supervisord # systemctl start supervisord # 启动supervisord服务 # systemctl status supervisord # 查看supervisord服务状态 # ps -ef|grep supervisord # 查看是否存在s.

ganices的博客 248

蓝易云 - CentOS7使用Nginx、Supervisor部署Go/Golang服务教程

这些是在CentOS 7 x64上使用Nginx和Supervisor部署Go/Golang服务的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。在CentOS 7 x64上使用Nginx和Supervisor部署Go/Golang服务是一种常见的配置方式。

高性价比服务器就选:蓝易云 474
上一篇: 【git】git常用命令
下一篇: 【部署】gunicorn使用
YPFeime
博客等级 码龄9年 19粉丝 49原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值