1,介绍

Supervisor是一个进程管理工具,官方的说法

用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor

这个工具主要就两个命令:

supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令

supervisorctl:启动supervisor的命令行窗口。

2安装

第一种方法:

pip install  supervisor

pip的安装

  1. cat pip_an.sh
  2. #!/bin/bash
  3. wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
  4. tar zxvf setuptools-.6c11.tar.gz
  5. cd setuptools-.6c11
  6. python setup.py build
  7. python setup.py install
  8. wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa33326"
  9. tar -xzvf pip-1.5..tar.gz
  10. cd pip-1.5.
  11. python setup.py install

第二种

yum install python-setuptools
easy_install supervisor

第三种

wget https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.3.tar.gz
tar zxvf supervisor-3.1.3.tar.gz
cd supervisor
python setup.py install

第四种

yum install -y epel-release

yum install -y supervisor

3测试

#测试是否安装成功
echo_supervisord_conf
#创建配置文件
echo_supervisord_conf > /etc/supervisord.conf

4配置文件讲解

转载自https://blog.linuser.com/?p=143

  1. [root@centos- ~ ::]#cat /etc/supervisord.conf.bak
  2. ; Sample supervisor config file.
  3.  
  4. [unix_http_server]
  5. file=/var/run/supervisor/supervisor.sock ; socket 路径
  6.  
  7. ;chmod= ; socket 文件的权限
  8. ;chown=nobody:nogroup ; socket 所属用户及组
  9. ;username=user ; 用户名
  10. ;password= ; 密码
  11.  
  12. ;[inet_http_server] ; 是否启用服务,默认是关闭的(启用的话可以看到supervisor 管理的服务状态)
  13. ;port=127.0.0.1: ; 监听的IP及端口
  14. ;username=user ; 用户名
  15. ;password= ; 密码
  16.  
  17. [supervisord] ; supervisord 全局配置
  18. logfile=/var/log/supervisor/supervisord.log ; supervisor 日志路径
  19. logfile_maxbytes=50MB ; 单个日志文件最大数
  20. logfile_backups= ; 保留多少个日志文件(默认10个)
  21. loglevel=info ; (log level;default info; others: debug,warn,trace)
  22. pidfile=/var/run/supervisord.pid ; pid 文件路径
  23. nodaemon=false ; 启动是否丢到前台,设置为false ,表示以daemon 的方式启动
  24. minfds= ; 最小文件打开数,对应系统limit.conf 中的nofile ,默认最小为1024,最大为4096
  25. minprocs= ; 最小的进程打开数,对应系统的limit.conf 中的nproc,默认为200
  26. ;umask= ; (process file creation umask;default )
  27. ;user=chrism ; 启动supervisord 服务的用户,默认为root
  28. ;identifier=supervisor ; (supervisord identifier, default is 'supervisor')
  29. ;directory=/tmp ; 这里的目录指的是服务的工作目录
  30. ;nocleanup=true ; (don't clean up tempfiles at start;default false)
  31. ;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP)
  32. ;environment=KEY=value ; (key value pairs to add to environment)
  33. ;strip_ansi=false ; (strip ansi escape codes in logs; def. false)
  34.  
  35. ; the below section must remain in the config file for RPC
  36. ; (supervisorctl/web interface) to work, additional interfaces may be
  37. ; added by defining them in separate rpcinterface: sections
  38. [rpcinterface:supervisor]
  39. supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
  40.  
  41. [supervisorctl]
  42. serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket
  43. ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
  44. ;username=chris ; should be same as http_username if set
  45. ;password= ; should be same as http_password if set
  46. ;prompt=mysupervisor ; cmd line prompt (default "supervisor")
  47. ;history_file=~/.sc_history ; use readline history if available
  48.  
  49. ; The below sample program section shows all possible program subsection values,
  50. ; create one or more 'real' program: sections to be able to control them under
  51. ; supervisor.
  52.  
  53. ;[program:theprogramname] ; 定义一个守护进程 ,比如下面的elasticsearch
  54. ;command=/bin/cat ; 启动程序使用的命令,可以是绝对路径或者相对路径
  55. ;process_name=%(program_name)s ; 一个python字符串表达式,用来表示supervisor进程启动的这个的名称,默认值是%(program_name)s
  56. ;numprocs= ; Supervisor启动这个程序的多个实例,如果numprocs>,则process_name的表达式必须包含%(process_num)s,默认是1
  57. ;directory=/tmp ; supervisord在生成子进程的时候会切换到该目录
  58. ;umask= ; umask for process (default None)
  59. ;priority= ; 权重,可以控制程序启动和关闭时的顺序,权重越低:越早启动,越晚关闭。默认值是999
  60. ;autostart=true ; 如果设置为true,当supervisord启动的时候,进程会自动启动
  61. ;autorestart=true ; 设置为随 supervisord 重启而重启,值可以是false、true、unexpected。false:进程不会自动重启
  62. ;startsecs= ; 程序启动后等待多长时间后才认为程序启动成功,默认是10秒
  63. ;startretries= ; supervisord尝试启动一个程序时尝试的次数。默认是3
  64. ;exitcodes=, ; 一个预期的退出返回码,默认是0,。
  65. ;stopsignal=QUIT ; 当收到stop请求的时候,发送信号给程序,默认是TERM信号,也可以是 HUP, INT, QUIT, KILL, USR1, or USR2
  66. ;stopwaitsecs= ; 在操作系统给supervisord发送SIGCHILD信号时等待的时间
  67. ;user=chrism ; 如果supervisord以root运行,则会使用这个设置用户启动子程序
  68. ;redirect_stderr=true ; 如果设置为true,进程则会把标准错误输出到supervisord后台的标准输出文件描述符
  69. ;stdout_logfile=/a/path ; 把进程的标准输出写入文件中,如果stdout_logfile没有设置或者设置为AUTO,则supervisor会自动选择一个文件位置
  70. ;stdout_logfile_maxbytes=1MB ; 标准输出log文件达到多少后自动进行轮转,单位是KB、MB、GB。如果设置为0则表示不限制日志文件大小
  71. ;stdout_logfile_backups= ; 标准输出日志轮转备份的数量,默认是10,如果设置为0,则不备份
  72. ;stdout_capture_maxbytes=1MB ; 当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB
  73. ;stdout_events_enabled=false ; 如果设置为true,当进程在写它的stderr
  74. ;stderr_logfile=/a/path ; 把进程的错误日志输出一个文件中,除非redirect_stderr参数被设置为true
  75. ;stderr_logfile_maxbytes=1MB ; 错误log文件达到多少后自动进行轮转,单位是KB、MB、GB。如果设置为0则表示不限制日志文件大小
  76. ;stderr_logfile_backups= ; 错误日志轮转备份的数量,默认是10,如果设置为0,则不备份
  77. ;stderr_capture_maxbytes=1MB ; 当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB
  78. ;stderr_events_enabled=false ; 如果设置为true,当进程在写它的stderr到文件描述符的时候,PROCESS_LOG_STDERR事件会被触发
  79. ;environment=A=,B= ; 一个k/v对的list列表
  80. ;serverurl=AUTO ; 是否允许子进程和内部的HTTP服务通讯,如果设置为AUTO,supervisor会自动的构造一个url
  81.  
  82. ; The below sample eventlistener section shows all possible
  83. ; eventlistener subsection values, create one or more 'real'
  84. ; eventlistener: sections to be able to handle event notifications
  85. ; sent by supervisor.
  86. #这个地方是自定义一个守护进程
  87. [program:elasticsearch] ; 定义一个守护进程 elasticsearch
  88. environment=ES_HOME=/usr/local/elasticsearch ; 设置ES_HOME 环境变量
  89. user=elk ; 启动elasticsearch 的用户
  90. directory=/usr/local/elasticsearch ; 进入到这个目录中
  91. command=/usr/local/elasticsearch/bin/elasticsearch ; 执行启动命令
  92. numprocs= ; Supervisor启动这个程序的多个实例,如果numprocs>,则process_name的表达式必须包含%(process_num)s,默认是1
  93. autostart=true ; 设置为随 supervisord 启动而启动
  94. autorestart=true ; 设置为随 supervisord 重启而重启
  95. startretries= ; 设置elasticsearch 重启的重试次数
  96. priority= ; 权重,可以控制程序启动和关闭时的顺序,权重越低:越早启动,越晚关闭。默认值是999
  97.  
  98. ;[eventlistener:theeventlistenername]
  99. ;command=/bin/eventlistener ; the program (relative uses PATH, can take args)
  100. ;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
  101. ;numprocs= ; number of processes copies to start (def )
  102. ;events=EVENT ; event notif. types to subscribe to (req'd)
  103. ;buffer_size= ; event buffer queue size (default )
  104. ;directory=/tmp ; directory to cwd to before exec (def no cwd)
  105. ;umask= ; umask for process (default None)
  106. ;priority=- ; the relative start priority (default -)
  107. ;autostart=true ; start at supervisord start (default: true)
  108. ;autorestart=unexpected ; restart at unexpected quit (default: unexpected)
  109. ;startsecs= ; number of secs prog must stay running (def. )
  110. ;startretries= ; max # of serial start failures (default )
  111. ;exitcodes=, ; 'expected' exit codes for process (default ,)
  112. ;stopsignal=QUIT ; signal used to kill process (default TERM)
  113. ;stopwaitsecs= ; max num secs to wait b4 SIGKILL (default )
  114. ;user=chrism ; setuid to this UNIX account to run the program
  115. ;redirect_stderr=true ; redirect proc stderr to stdout (default false)
  116. ;stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
  117. ;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
  118. ;stdout_logfile_backups= ; # of stdout logfile backups (default )
  119. ;stdout_events_enabled=false ; emit events on stdout writes (default false)
  120. ;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
  121. ;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
  122. ;stderr_logfile_backups ; # of stderr logfile backups (default )
  123. ;stderr_events_enabled=false ; emit events on stderr writes (default false)
  124. ;environment=A=,B= ; process environment additions
  125. ;serverurl=AUTO ; override serverurl computation (childutils)
  126.  
  127. ; The below sample group section shows all possible group values,
  128. ; create one or more 'real' group: sections to create "heterogeneous"
  129. ; process groups.
  130.  
  131. ;[group:thegroupname] ; 服务组管理,可以将多个服务名写到这里管理(组名自定义)
  132. ;programs=progname1,progname2 ; 上面配置好的服务名,比如elasticsearch,kibana,logstash
  133. ;priority= ; the relative start priority (default )
  134.  
  135. ; The [include] section can just contain the "files" setting. This
  136. ; setting can list multiple files (separated by whitespace or
  137. ; newlines). It can also contain wildcards. The filenames are
  138. ; interpreted as relative to this file. Included files *cannot*
  139. ; include files themselves.
  140.  
  141. [include]
  142. files = supervisord.d/*.ini

一般也可以将守护的进程配置定义守护进程放在/etc/supervisor目录下,以x.conf或者x.ini来命名

启动

4、确定supervisord 服务并设置为随机启动:

systemctl start supervisord.service && systemctl enable supervisord.service

或者加载的时候需要,supervisord -c /etc/supervisord.conf这样就可以了。

supervisor的安装与简单介绍的更多相关文章

  1. Kali安装zmap简单介绍

    zmap是一个非常方便的扫描器,跟nmap和masscan一样,不过区别在于zmap他快,号称是一小时扫遍整个互联网.主要使用方式是TCP SYN scan.TCP connectscan.UDP s ...

  2. java web(一):tomcat服务器的安装和简单介绍,与eclipse关联

    一:下载tomcat安装包和安装 这个百度一下就可以了. 安装完以后进入tomcat的安装路径查看 如图所示:有几个目录简单介绍下 bin目录:   存放运行tomcat服务器的相关命令. conf目 ...

  3. Postman安装与简单介绍

    Postman简介 Postman是一个 Chrome 扩展,能提供强大的 Web API HTTP 请求调试功能.Postman能够发送任何类型的http请求,支持GET/PUT/POST/DELE ...

  4. postman插件的安装以及简单介绍

    1:postman是干什么的? Postman官网上这么介绍的:“Modern software is built on APIs,Postman helps you develop APIs fas ...

  5. rocksDB 安装问题简单介绍

    前一段时间准备测试rocksdb,按照帖子和官网的例子,在安装过程中遇到一些问题.这里给出的是在Ubuntu下安装python使用的版本. 首先,要感谢这些帖子对我的帮助: 1:http://tech ...

  6. percona-toolkit的安装及简单介绍

    MySQL数据库是轻量级.开源数据库的佼佼者.其功能和管理,健壮性与Oracle相比还是有相当的差距.因此有非常多功能强大第三方的衍生产品,如percona-toolkit,XtraBackup等等. ...

  7. moogodb 安装及简单介绍

    1,安装Moogodb 因为是windows 64位操作系统,直接到官网上下载.msi文件,下载完成后点击安装,点击同意协议之后,出现下面的对话框, Choose Setup Type, 就是选择安装 ...

  8. 性能测试三十八:Java性能分析神器-JProfiler安装和简单介绍

    Jprofiler是一个重量级的工具,需要分别在服务器和windows都装客户端,会损耗性能,用于发现问题后排查问题,而不是常规的监控 JPROFILER工具下载地址:http://www.ej-te ...

  9. MongoDB安装和简单介绍

    前面我们把nodejs的web开发入门说了,如今来说说数据库,一般搭配的数据库是mysql和mongodb,今天我们来说mongodb MongoDB是一个基于分布式文件存储的数据库,由C++语言编写 ...

随机推荐

  1. NopCommerce 在Category 显示Vendor List列表

    实现效果如下: 1.在前台Web的Category Menu显示 Vendor; 2.点击Vendor 显示Vendor List列表: 主要配置步骤: 1.运行网站 Admin 后台   Categ ...

  2. Java--String 和StringBuilder、StringBuffer 的区别?

    1.String是只读字符串,引用的字符串内容是无法改变的. 2.StringBuffer和StringBuilder的字符串对象可以直接进行修改. 3.StringBuilder没有被synchro ...

  3. JSON总结(二)——google-gson

    gson是一个google的开源项目,支持多种JSON方法,这里主要讲解如何使用gson将json转换成javaBean. maven坐标 <dependency> <groupId ...

  4. jQuery中iframe的操作

    今天遇到一个问题:怎样实现点击一个按钮,在当前的页面上新增加一个小窗口,展示一个图片信息? 如图: 点击之前: 单击之后: 分析:要使新增的小窗口不影响父页面,我们这里采用iframe的框架的技术. ...

  5. SpringAOP与Redis搭建缓存

    近期项目查询数据库太慢,持久层也没有开启二级缓存,现希望采用Redis作为缓存.为了不改写原来代码,在此采用AOP+Redis实现. 目前由于项目需要,只需要做查询部分: 数据查询时每次都需要从数据库 ...

  6. CSS3学习总结——实现瀑布流布局与无限加载图片相册

    首先给大家看一下瀑布流布局与无限加载图片相册效果图: 一.pic1.html页面代码如下: <!DOCTYPE html> <html> <head> <me ...

  7. 浅谈时钟的生成(js手写代码)

    在生成时钟的过程中自己想到布置表盘的写法由这么几种: 当然利用那种模式都可以实现,所以我们要用一个最好理解,代码有相对简便的方法实现 1.利用三角函数 用js在三角函数布置表盘的过程中有遇见到这种情况 ...

  8. iOS陀螺仪 参数意义

    self.mManager = [[CMMotionManager alloc]init]; self.mManager.deviceMotionUpdateInterval = 0.5; if (s ...

  9. Android Weekly Notes Issue #223

    Android Weekly Issue #223 September 18th, 2016 Android Weekly Issue #223 本期内容包括: Offline时间戳处理; Acces ...

  10. Android中的自定义控件(二)

    案例四: 自定义开关       功能介绍:本案例实现的功能是创建一个自定义的开关,可以自行决定开关的背景.当滑动开关时,开关的滑块可跟随手指移动.当手指松开后,滑块根据开关的状态,滑到最右边或者滑到 ...