supervisord使用
安装supervisor
#centos
yum install supervisor配置目录地址
/etc/supervisord.d #目录存放任务配置文件
/etc/supervisord.conf #目录存放supervisor配置文件
运行supervisor服务
systemctl start supervisord
可以使用 supervisorctl
命令在控制面板查看当前运行的任务
# 控制面板操作
supervisor> restart app # 重启任务 app任务名, 任务文件.ini中设置的 [program:app]
supervisor> stop app # 停止任务
supervisor> update app # 启动app
supervisor> status app # 查看状态
supervisor> exit # 退出
supervisor> help # 一共这么多命令default commands (type help <topic>):
=====================================
add clear fg open quit remove restart start stop update
avail exit maintail pid reload reread shutdown status tail version
配置文件说明
[program:cat] # 名为cat的program配置如下
command=/bin/cat # 程序启动时的命令
process_name=%(program_name)s # 进程名称
numprocs=1 # 开几个进程处理
numprocs_start=0 # 用于计算 numprocs 开始的数字的整数偏移量
directory=/tmp # 一个文件路径,表示在执行子代之前 supervisord 应暂时chdir的目录。
umask=022 # 进程新建文件、目录的权限会受到umask的影响,umask表示要减掉的权限(default None)
priority=999 # 程序在启动和关闭顺序中的相对优先级。
autostart=true # 如果为true,则在启动supervisord时,此程序将自动启动,默认为true
autorestart=unexpected # # 指定如果 supervisord 处于 RUNNING 状态时,如果它退出,则 supervisord 是否应自动重新启动该进程
startsecs=10 # 启动后,程序需要保持运行以考虑启动成功(将进程从 STARTING 状态移动到 RUNNING 状态)的总秒数
startretries=3 # 在放弃并将过程置于 FATAL 状态之前,尝试启动程序时,supervisord 将允许的串行故障尝试次数
exitcodes=0,2 # 与 autorestart 一起使用的此程序的“预期”退出代码列表。
stopsignal=TERM # 请求停止时用于终止程序的信号
stopwaitsecs=10 # 在程序发送一个停止信号后等待操作系统将SIGCHLD返回到 supervisord 的秒数
stopasgroup=false # 如果为真,则该标志使管理程序向整个进程组发送停止信号,并暗示 killasgroup 为真。
killasgroup=false # 如果为true,当使用发送SIGKILL到程序终止它发送它到整个进程组,照顾它的孩子,以及有用的,例如使用 multiprocessing 的Python程序。
user=chrism # 指示 supervisord 将此UNIX用户帐户用作运行程序的帐户。
redirect_stderr=false # 如果为true,则导致进程的stderr输出在其stdout文件描述符上被发送回 supervisord
stdout_logfile=/a/path # 将进程stdout输出放在此文件中(如果redirect_stderr为true,还将stderr输出放在此文件中)
stdout_logfile_maxbytes=1MB # stdout_logfile 在旋转之前可能消耗的最大字节数(可以在值中使用类似“KB”,“MB”和“GB”的后缀乘法器)。将此值设置为0表示无限日志大小
stdout_logfile_backups=10 # 由进程标准输出日志文件轮换产生的 stdout_logfile 备份的数量。如果设置为0,将不保留备份。
stdout_capture_maxbytes=1MB # 当进程处于“stdout捕获模式”(见 捕获模式)时,写入捕获FIFO的最大字节数,为0,则过程捕获模式将关闭。
stdout_events_enabled=false # 如果为true,则当进程写入其stdout文件描述符时,将发出PROCESS_LOG_STDOUT事件
stderr_logfile=/a/path # 将过程stderr输出放在此文件中,除非 redirect_stderr 为true
stderr_logfile_maxbytes=1MB # stderr_logfile 的日志文件轮换前的最大字节数
stderr_logfile_backups=10 # 由进程stderr日志文件轮换导致的备份数
stderr_capture_maxbytes=1MB # 当进程处于“stderr捕获模式”(见 捕获模式)时,写入捕获FIFO的最大字节数
stderr_events_enabled=false # 如果为true,则当进程写入其stderr文件描述符时,将发出PROCESS_LOG_STDERR事件
environment=A="1",B="2" # 将被放置在子进程的环境中的 KEY="val",KEY2="val2" 形式的键/值对的列表。
serverurl=AUTO # 在环境中传递到子进程进程的URL作为 SUPERVISOR_SERVER_URL
process_name
[program:cat]
process_name=%(program_name)s # 任务名为:cat 关闭的命令为:supervisorctl stop cat
process_name=%(program_name)s-1 # 任务名为:cat:cat-1 关闭的命令为:supervisorctl stop cat:cat-1
numprocs
process_name=%(program_name)s
numprocs=1#若numprocs > 1时,若 process_name=%(program_name)s 时报错。
Error: %(process_num) must be present within process_name when numprocs > 1
process_name=%(program_name)s_%(process_num)02d ;当同一个脚本,希望启动多个守护进程时,多进程名称肯定不能相同,匹配多个
numprocs=4
startsecs
;程序必须保持运行的秒数(def 1)
startsecs=1#有些任务处理的较快,默认为程序必须保持1秒时,则会启动不起来。此时,可以将startsecs=0
redirect_stderr
#把stderr重定向到stdout(def false)
redirect_stderr=true如果选false,则会使用stderr_logfile的日志文件记录
四、常用的事件类型
Event 解释
PROCESS_STATE 进程状态发生改变
PROCESS_STATE_STARTING 进程状态从其他状态转换为正在启动(Supervisord的配置项中有startsecs配置项,是指程序启动时需要程序至少稳定运行x秒才认为程序运行正常,在这x秒中程序状态为正在启动)
PROCESS_STATE_RUNNING 进程从正在启动状态转换为正在运行状态
PROCESS_STATE_BACKOFF 进程从正在启动状态转换为启动失败状态,Supervisor 正在重启该进程
PROCESS_STATE_STOPPING 进程从正在运行状态或正在启动状态转换为正在停止状态
PROCESS_STATE_EXITED 进程从正在运行状态转换为退出状态,expected 退出码,如果是 0 表示进程异常退出,1 表示进程正常退出。
PROCESS_STATE_STOPPED 进程从正在停止状态转换为已停止状态
PROCESS_STATE_FATAL 进程从启动失败状态(BACKOFF)转换为失败状态(FATAL). 意味着 startretries 尝试次数已达上限,Supervisor 已放弃重启该进程。
PROCESS_LOG 进程产生日志输出,被管理的进程需配置,stdout_events_enabled=true or stderr_events_enabled=true 这个事件通知才会生效。
PROCESS_LOG_STDOUT 进程产生标准输出,被管理的进程需配置,stdout_events_enabled=true
PROCESS_LOG_STDERR 进程产生错误输出,被管理的进程需配置,stderr_events_enabled=true
相关文章:
superviso配合laravel的使用:https://learnku.com/docs/laravel/5.8/queues/3923#supervisor-configuration
supervisor 安装使用详解:http://www.w3capi.com/cms/content/id/57/cid/26.html
Supervisor使用详解:https://www.jianshu.com/p/0b9054b33db3
Supervisor Event Listener 任务监控与告警:https://blog.csdn.net/weixin_45032957/article/details/100184735
supervisor详解-苏坡外泽:https://blog.csdn.net/weixin_37008947/article/details/108107216
Supervisor 管理进程服务重启报警:https://blog.csdn.net/fgf00/article/details/104579788
supervisor官方文档:http://supervisord.org/
supervisord使用相关推荐
- 用supervisord管理杂乱的服务
2019独角兽企业重金招聘Python工程师标准>>> Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效. 环境 centos py ...
- supervisord+supervisorclusterctl+supervisord-monit
为什么80%的码农都做不了架构师?>>> 最近blog更新的有点慢了,先补一篇关于supervisord的文章,supervisord使用很久了,那是在还没掌握怎么在linux ...
- systemd下supervisord服务开机自启动以及注意事项
systemd 下supervisord服务开机自启动 centos7 开机自启动脚本: #vim /lib/systemd/system/supervisord.service# superviso ...
- Docker 使用 supervisord 管理 lumen队列与crontab
之前在docker内使用lumen的队列服务做了一个异步,处理一些内容审核的相关操作.但是每次重启容器之后都需要进入docker内部启动lumen的队列进程(虽然文档内有写使用supervisord管 ...
- Docker + gunicron + supervisord 部署python应用
2019独角兽企业重金招聘Python工程师标准>>> 首先要看一下项目的一些基本目录结构 requirement.txt (项目的安装包文件) supervisord.conf ( ...
- python supervisord 远程命令执行漏洞(CVE-2017-11610)
Supervisord Supervisord是一款Python开发,用于管理后台应用(服务)的工具,其角色类似于Linux自带的Systemd. 我觉得它相比Systemd有几个特点: 配置比较简单 ...
- Centos7.x 安装 Supervisord
[环境] 系统:Centos 7.3 软件:supervisord [安装Supervisord] yum install epel-release yum install -y supervisor ...
- 【转】supervisord使用
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...
- 以supervisord启动elasticsearch
1. 安装epel源 2. 安装supervisor yum -y install supervisor 3. 配置supervisord [program:elasticsearch] comman ...
- golang 程序部署及Supervisord deamon 运行
此方法运行是基于supervisord的,系统为centos 64位 所以先安装相应的程序 第一步.首先执行 curl https://bootstrap.pypa.io/ez_setup.py ...
最新文章
- VTK:PolyData之LinearExtrusion
- android 之数据存储(IO)
- iOS网络加载图片缓存策略之ASIDownloadCache缓存优化
- Canvas实战---模仿GOOGLE浮动小球效果
- thinkpad T430s 在win8上安装ubuntu双系统(UEFI开启)
- Java 三个线程依次输出ABC
- 上楼梯算法的java实现(转)
- JSP基础--J2EE赢在起跑线
- 浙大计算机考研分数线2016,浙江大学2016考研复试分数线
- 酒店计算机管理系统维护合同,酒店计算机管理系统维护合同协议书范本(4页)-原创力文档...
- Hive调优全方位指南(推荐收藏)
- oracle----globle temp table
- Zynq系列--Uboot移植
- 电商系统购物车设计思路
- scp是什么,有什么用
- 不入耳式蓝牙耳机什么牌子好、最好的骨传导耳机推荐
- 三大巨头遥遥领先!亚马逊云服务领跑亚太第一,阿里微软紧随其后,腾讯谷歌百度进入前六 | 美通社头条...
- PCB设计---无源晶振和有源晶振
- 复制百度文库文字收费内容
- 看繁华一世,三千浮生若水