安装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使用相关推荐

  1. 用supervisord管理杂乱的服务

    2019独角兽企业重金招聘Python工程师标准>>> Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效. 环境 centos py ...

  2. supervisord+supervisorclusterctl+supervisord-monit

    为什么80%的码农都做不了架构师?>>>    最近blog更新的有点慢了,先补一篇关于supervisord的文章,supervisord使用很久了,那是在还没掌握怎么在linux ...

  3. systemd下supervisord服务开机自启动以及注意事项

    systemd 下supervisord服务开机自启动 centos7 开机自启动脚本: #vim /lib/systemd/system/supervisord.service# superviso ...

  4. Docker 使用 supervisord 管理 lumen队列与crontab

    之前在docker内使用lumen的队列服务做了一个异步,处理一些内容审核的相关操作.但是每次重启容器之后都需要进入docker内部启动lumen的队列进程(虽然文档内有写使用supervisord管 ...

  5. Docker + gunicron + supervisord 部署python应用

    2019独角兽企业重金招聘Python工程师标准>>> 首先要看一下项目的一些基本目录结构 requirement.txt (项目的安装包文件) supervisord.conf ( ...

  6. python supervisord 远程命令执行漏洞(CVE-2017-11610)

    Supervisord Supervisord是一款Python开发,用于管理后台应用(服务)的工具,其角色类似于Linux自带的Systemd. 我觉得它相比Systemd有几个特点: 配置比较简单 ...

  7. Centos7.x 安装 Supervisord

    [环境] 系统:Centos 7.3 软件:supervisord [安装Supervisord] yum install epel-release yum install -y supervisor ...

  8. 【转】supervisord使用

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

  9. 以supervisord启动elasticsearch

    1. 安装epel源 2. 安装supervisor yum -y install supervisor 3. 配置supervisord [program:elasticsearch] comman ...

  10. golang 程序部署及Supervisord deamon 运行

    此方法运行是基于supervisord的,系统为centos  64位 所以先安装相应的程序 第一步.首先执行  curl https://bootstrap.pypa.io/ez_setup.py ...

最新文章

  1. VTK:PolyData之LinearExtrusion
  2. android 之数据存储(IO)
  3. iOS网络加载图片缓存策略之ASIDownloadCache缓存优化
  4. Canvas实战---模仿GOOGLE浮动小球效果
  5. thinkpad T430s 在win8上安装ubuntu双系统(UEFI开启)
  6. Java 三个线程依次输出ABC
  7. 上楼梯算法的java实现(转)
  8. JSP基础--J2EE赢在起跑线
  9. 浙大计算机考研分数线2016,浙江大学2016考研复试分数线
  10. 酒店计算机管理系统维护合同,酒店计算机管理系统维护合同协议书范本(4页)-原创力文档...
  11. Hive调优全方位指南(推荐收藏)
  12. oracle----globle temp table
  13. Zynq系列--Uboot移植
  14. 电商系统购物车设计思路
  15. scp是什么,有什么用
  16. 不入耳式蓝牙耳机什么牌子好、最好的骨传导耳机推荐
  17. 三大巨头遥遥领先!亚马逊云服务领跑亚太第一,阿里微软紧随其后,腾讯谷歌百度进入前六 | 美通社头条...
  18. PCB设计---无源晶振和有源晶振
  19. 复制百度文库文字收费内容
  20. 看繁华一世,三千浮生若水

热门文章

  1. 从 TM1637 看一看非常规 I2C
  2. easy excel date 类型解析报错_两个日期相差多少天,你还在一天天的数吗?用Excel轻松完成计算...
  3. 暗组免杀php,那些强悍的PHP一句话后门
  4. PT2262 单片机解码程序
  5. 沃尔玛积极助农,2月全国范围直采滞销蔬菜近500吨
  6. 基于Apache doris的元数据管理系统
  7. myEclipse(MyEclipse)下VSS的安装和使用
  8. GPS授时是什么意思
  9. 1.4 Git基本操作之删除文件找回及文件比较
  10. 素数个数求解与素数的判定