背景:

项目中遇到有些脚本需要通过后台进程运行,保证不被异常中断,之前都是通过nohup、&、screen来实现,带着能否做一个start/stop/restart/reload的服务启动的想法找到里Supervisor。

关于supervisor的介绍在网上大致搜索总结如下:

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

说明:

1,安装

1:easy_install 安装:
easy_install supervisor2:pip 安装:
pip install supervisor3:Debian / Ubuntu可以直接通过apt安装:
apt-get install supervisor

swoft是在cli模式下工作的,因此我们可以用supervisor来管理进程。

在这个下面配置一个文件,或者多个文件

内容如下:

[program:swoft]
command=php /data/www/lch/bin/swoft start
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/tmp/swoft.log

再比如我要在swoft里面开启一个rabbitmq消费进程,那么配置如下:

[program:consume]
;进程名称
process_name=%(program_name)s_%(process_num)02d
; 程序的启动目录
directory = /data/www/lch/
; 启动命令,可以看出与手动在命令行启动的命令是一样的
command = php bin/swoft consume:start
; 在 supervisord 启动的时候也自动启动
autostart = true
; 启动 5 秒后没有异常退出,就当作已经正常启动了
otartsecs = 5
; 程序异常退出后自动重启
autorestart = true
; 启动失败自动重试次数,默认是 3
startretries = 3
;进程数
numprocs=1
; 用哪个用户启动
user = root
; 把 stderr 重定向到 stdout,默认 false
redirect_stderr = true
; stdout 日志文件大小,默认 50MB
stdout_logfile_maxbytes = 20MB
; stdout 日志文件备份数
stdout_logfile_backups = 20
stdout_logfile = /tmp/consume.log

保存,重启supervisor服务(sudo supervisorctl reload)

这个时候可以查看进程执行情况:

使用supervisor 管理swoft进程相关推荐

  1. Supervisor管理hhvm进程

    2019独角兽企业重金招聘Python工程师标准>>> hhvm速度很快,但由于与网站程序兼容性或hhvm本身不成熟,跑一段时间后会出现hhvm经常宕掉,而前台出现502 bad g ...

  2. Springboot部署Nginx,配合Supervisor管理Springboot进程

    Springboot部署Nginx,配合Supervisor管理Springboot进程 1.打包项目 2.项目放置目录 3.通过yum方式安装nginx,supervisor 4.配置nginx 进 ...

  3. supervisor管理prometheus进程

    一.supervisor简单介绍 二.supervisor安装 三.supervisor部署应用 四.supervisorctl常用指令 五.supervisor测试 一.supervisor简单介绍 ...

  4. centos7.5 安装配置supervisor管理python进程(也就是服务)

    以前的博文有写,但是有些许不同再详细描述一下,之前的系统已经被我玩崩了.再次强调权限问题,最好是获取权限,完成修改后再该回原来的权限. 1.安装supervisor sudo yum install ...

  5. supervisor 守护多个进程_supervisor管理守护进程

    在Linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件. 由于在linux中,每个系统与用户进行交流的 ...

  6. 系统服务管理知识-进程守护工具:supervisor

    官方技术资料链接:http://www.supervisord.org/introduction.html 目录 1.1 进程管理服务概述 1.1.1 supervisor进程管理工具概述 1.1.2 ...

  7. java:使用supervisor优雅的管理SpringBoot进程

    目录 1.创建 SpringBoot 项目 2.手工部署项目 3.部署优化 4.通过 shell 脚本自动部署项目 4.1.在 Linux 安装 Git 4.2.在 Linux 安装 Maven 4. ...

  8. Supervisor安装、管理守护进程

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...

  9. 【Redis】CentOS7下redis的安装+supervisor管理+允许远程访问+测试部署效果

    一.redis的安装 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 第二步:解压压缩包 tar -z ...

最新文章

  1. 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第二章 深入理解Netd
  2. Android Linux自带iptables配置IP访问规则
  3. [Python图像识别] 四十六.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)
  4. Win7/Win8.1升级Win10后屏幕一直闪烁怎么办?
  5. stm32 led屏控制卡_室内LED显示屏如何安装?
  6. 循序渐进学好编程,不要太急!!!
  7. 第15课 比尔庄园 《小学生C++趣味编程》
  8. gitlab mr wip 怎么弄成_基于GitLab的工作流程设计
  9. Socket IO多路复用: epoll原理图解
  10. mybatis中文文档_成神之路!缓存+MyBatis+MySQL+Spring全家桶+分布式技术实战合集
  11. 计算机网络毕业论文 20页,计算机网络技术专业毕业论文(23页)-原创力文档
  12. LeetCode113. 路径总和 II(DFS)(递归)
  13. 随机模拟的基本思想和常用采样方法(sampling)
  14. 谈谈CSMA/CD,TCP中的二进制指数退避算法
  15. Atitit 数据库 负载均衡 方法总结 目录 1. 对称模型负载均衡 vs 非对称模型 2 1.1. 业务分离法 2 1.2. App + db分布式分离法 2 2. 负载均衡算法 2 2.1.
  16. domino生成Excel图表
  17. 电阻的种类以及选型要点
  18. VS中读取NMEA数据进行定位精度分析
  19. 计算机c盘怎样重命名,讲解对C盘重命名中无法修改的处理的详细步骤
  20. 骗的就是你!揭露买本10大愚蠢表现

热门文章

  1. Docker常用命令【更新中】
  2. NOIp 2018 游记+题解
  3. scp 保留文件属组_scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名
  4. 热门Epub阅读器介绍
  5. msvcp110.dll丢失怎么修复
  6. 137所大学双一流学科建设名单
  7. 电小天线理论仿真-单极子天线1
  8. 非计算机专业跨计算机,非计算机专业跨考考研计算机难度如何?
  9. 电脑重启bootmgr_电脑启动不了显示bootmgr
  10. [Java]应用冒泡排序法对数组进行升序排列