supervisor 是用 Python 开发的一个 C/S 服务。是 Linux/Unix 系统下的进程管理工具。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

安装

pip 方式

  1. pip install supervisor

yum 方式

  1. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  2. yum install supervisor -y

配置文件

pip 安装的需自行生成配置文件

  1. echo_supervisord_conf > /etc/supervisord.conf

cat /etc/supervisord.conf

  1. [unix_http_server]
  2. file=/opt/supervisor.sock ; supervisorctl 使用的 socket 文件
  3. chmod=0700 ; socket 文件权限
  4. ;chown=nobody:nogroup ; socket file uid:gid owner
  5. ;username=user ; default is no username (open server)
  6. ;password=123 ; default is no password (open server)
  7. [inet_http_server] ; web 管理界面,即在页面做重启、停止等操作
  8. port=*:9001 ; 监听端口
  9. username=admin ; 用户
  10. password=123 ; 密码
  11. [supervisord]
  12. logfile=/var/log/supervisord.log ; supervisor日志文件 $CWD/supervisord.log
  13. logfile_maxbytes=50MB ; 日志文件大小,默认 50MB
  14. logfile_backups=1 ; 默认保留1个文件
  15. loglevel=info ; 日志级别,默认info; 其他格式: debug,warn,trace
  16. pidfile=/var/run/supervisord.pid ; pid 文件
  17. nodaemon=false ; 是否在前台运行,默认false,以 daemon模式运行
  18. minfds=1024 ; 可以打开文件描述符的最小值
  19. minprocs=200 ; 可以打开进程数最小值
  20. ;umask=022 ; process file creation umask; default 022
  21. ;user=chrism ; default is current user, required if root
  22. ;identifier=supervisor ; supervisord identifier, default is 'supervisor'
  23. ;directory=/opt ; default is not to cd during start
  24. ;nocleanup=true ; don't clean up tempfiles at start; default false
  25. ;childlogdir=/opt ; 'AUTO' child log dir, default $TEMP
  26. ;environment=KEY="value" ; key value pairs to add to environment
  27. ;strip_ansi=false ; strip ansi escape codes in logs; def. false
  28. [supervisorctl]
  29. serverurl=unix:///opt/supervisor.sock ; use a unix:// URL for a unix socket
  30. ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
  31. ;username=chris ; should be same as in [*_http_server] if set
  32. ;password=123 ; should be same as in [*_http_server] if set
  33. ;prompt=mysupervisor ; cmd line prompt (default "supervisor")
  34. ;history_file=~/.sc_history ; use readline history if available
  35. [include]
  36. files = /etc/supervisord.d/*.conf ;子文件

管理tomcat配置文件

cat /etc/supervisord.d/cms.conf

  1. [program:cms]
  2. command=/home/work/tomcat/cms-102/apache-tomcat-7.0.88/bin/catalina.sh run
  3. environment=JAVA_HOME="/usr/local/jdk/",JAVA_BIN="/usr/local/jdk/bin"
  4. stdout_logfile=/home/work/tomcat/cms-102/apache-tomcat-7.0.88/logs/catalina.out
  5. autostart=true
  6. autorestart=true
  7. startsecs=5
  8. priority=1
  9. stopasgroup=true
  10. killasgroup=true

执行

  1. # supervisord -c /etc/supervisord.conf
  2. # supervisorctl
  3. cms RUNNING pid 12328, uptime 5:59:22
  4. free-wifi RUNNING pid 10534, uptime 6:31:34
  5. government-services RUNNING pid 10475, uptime 6:31:34
  6. idcard RUNNING pid 13469, uptime 4:01:20
  7. # supervisorctl restart cms
  8. # supervisorctl start cms
  9. # supervisorctl stop cms

supervisor 文档的更多相关文章

  1. supervisor 部署文档

    supervisor 部署文档 supervisor 需要Python支持,如果不用系统的supervisor,单独安装python python 安装 #依赖 yum install python- ...

  2. supervisor安装部署文档和管理实例

    Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit(关于monit见我的博客:用monit监控系统关键进程),monit和supervisord的一个比较大的差异 ...

  3. php 如何写入、读取word,excel文档

    如何在php写入.读取word文档 <? //如何在php写入.读取word文档 // 建立一个指向新COM组件的索引 $word = new COM("word.applicatio ...

  4. 理解Linux文档的默认安全机制、隐藏属性、特殊权限,妈妈在也不用担心你从删库到跑路!!!

    写在前面 前面的章节 详解Linux文档属性.拥有者.群组.权限.差异,介绍了文档的基本权限,包括读写执行(r,w,x),还有文档若干的属性,包括是否为目录(d).文件(-).链接文件(l).拥有者. ...

  5. Niagara workbench 介绍文档---翻译

    一. 发现在建立station的时候存在一些问题,所以对技术文档部分做一个详细的了解,在这之前对出现的问题总结一下 1.  在 Windows操作系统中Application Direction中可以 ...

  6. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  7. Storm项目:流数据监控1《设计文档…

    博客公告: (1)本博客全部博客文章搬迁至<博客虫>http://blogchong.com/ (2)文章相应的源代码下载链接參考博客虫站点首页的"代码GIT". (3 ...

  8. (转)实验文档1:跟我一步步安装部署kubernetes集群

    实验环境 基础架构 主机名 角色 ip HDSS7-11.host.com k8s代理节点1 10.4.7.11 HDSS7-12.host.com k8s代理节点2 10.4.7.12 HDSS7- ...

  9. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

随机推荐

  1. 剑指offer第32题:把数组排成最小的数及关于list.sort()和sorted( Iterable object )函数的相关知识

     * 解题思路:  * 先将整型数组转换成字符数组,然后将String数组排序,最后将排好序的字符串数组拼接出来.关键就是制定比较规则.  * 排序规则如下:  * 若ab > ba 则 a & ...

  2. C# 读取 appconfig文件配置数据库连接字符串,和配置文件

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <connecti ...

  3. npm -g -D -s的区别

    npm install module-name 全局安装 npm install module-name -D 即 npm install module-name -save-dev  保存到devD ...

  4. MySQL 把两个结果集拼接到一起(两个结果集的列一模一样)

    select * from a UNION all ( select * from b)

  5. tcl实现批量压缩文件夹

    tcl脚本本身对字符串的处理比较简单,所以想着用这个也实现下: proc main {} { puts "请输入路径:" set strpath "E:\\123&quo ...

  6. js中bind的用法,及与call和apply的区别

    call和apply的使用和区别不再做阐述,可以参考我的另一篇随笔<JavaScript中call和apply方法的使用>(https://www.cnblogs.com/lcr-smg/ ...

  7. PC能替代服务器吗?

    PC能替代服务器吗?全方位解析二者区别_华为服务器_服务器x86服务器-中关村在线http://server.zol.com.cn/536/5366835_all.html

  8. CSS:与input相关的一些样式设置问题

    input是HTML中非常重要,非常常用而又不可替代的元素,在于其相关的样式设置中有时会遇到其他元素不会发生的问题,今天把我印象中的一些小问题和解决方案记录一下. 1.与同行元素上下居中对齐 关于上下 ...

  9. windows下postgreSQL安装与启动

    转:https://www.yiibai.com/postgresql/install-postgresql.html https://blog.csdn.net/irainreally/articl ...

  10. Redis学习笔记一

    Redis 与其他 key - value 缓存产品有以下三个特点:    Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用.    Redis不仅仅支持简单 ...