supervisor的安装与简单介绍
1,介绍
Supervisor是一个进程管理工具,官方的说法
用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor
这个工具主要就两个命令:
supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令
supervisorctl:启动supervisor的命令行窗口。
2安装
第一种方法:
pip install supervisor
pip的安装
- cat pip_an.sh
- #!/bin/bash
- wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
- tar zxvf setuptools-.6c11.tar.gz
- cd setuptools-.6c11
- python setup.py build
- python setup.py install
- wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa33326"
- tar -xzvf pip-1.5..tar.gz
- cd pip-1.5.
- 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
- [root@centos- ~ ::]#cat /etc/supervisord.conf.bak
- ; Sample supervisor config file.
- [unix_http_server]
- file=/var/run/supervisor/supervisor.sock ; socket 路径
- ;chmod= ; socket 文件的权限
- ;chown=nobody:nogroup ; socket 所属用户及组
- ;username=user ; 用户名
- ;password= ; 密码
- ;[inet_http_server] ; 是否启用服务,默认是关闭的(启用的话可以看到supervisor 管理的服务状态)
- ;port=127.0.0.1: ; 监听的IP及端口
- ;username=user ; 用户名
- ;password= ; 密码
- [supervisord] ; supervisord 全局配置
- logfile=/var/log/supervisor/supervisord.log ; supervisor 日志路径
- logfile_maxbytes=50MB ; 单个日志文件最大数
- logfile_backups= ; 保留多少个日志文件(默认10个)
- loglevel=info ; (log level;default info; others: debug,warn,trace)
- pidfile=/var/run/supervisord.pid ; pid 文件路径
- nodaemon=false ; 启动是否丢到前台,设置为false ,表示以daemon 的方式启动
- minfds= ; 最小文件打开数,对应系统limit.conf 中的nofile ,默认最小为1024,最大为4096
- minprocs= ; 最小的进程打开数,对应系统的limit.conf 中的nproc,默认为200
- ;umask= ; (process file creation umask;default )
- ;user=chrism ; 启动supervisord 服务的用户,默认为root
- ;identifier=supervisor ; (supervisord identifier, default is 'supervisor')
- ;directory=/tmp ; 这里的目录指的是服务的工作目录
- ;nocleanup=true ; (don't clean up tempfiles at start;default false)
- ;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP)
- ;environment=KEY=value ; (key value pairs to add to environment)
- ;strip_ansi=false ; (strip ansi escape codes in logs; def. false)
- ; the below section must remain in the config file for RPC
- ; (supervisorctl/web interface) to work, additional interfaces may be
- ; added by defining them in separate rpcinterface: sections
- [rpcinterface:supervisor]
- supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
- [supervisorctl]
- serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket
- ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
- ;username=chris ; should be same as http_username if set
- ;password= ; should be same as http_password if set
- ;prompt=mysupervisor ; cmd line prompt (default "supervisor")
- ;history_file=~/.sc_history ; use readline history if available
- ; The below sample program section shows all possible program subsection values,
- ; create one or more 'real' program: sections to be able to control them under
- ; supervisor.
- ;[program:theprogramname] ; 定义一个守护进程 ,比如下面的elasticsearch
- ;command=/bin/cat ; 启动程序使用的命令,可以是绝对路径或者相对路径
- ;process_name=%(program_name)s ; 一个python字符串表达式,用来表示supervisor进程启动的这个的名称,默认值是%(program_name)s
- ;numprocs= ; Supervisor启动这个程序的多个实例,如果numprocs>,则process_name的表达式必须包含%(process_num)s,默认是1
- ;directory=/tmp ; supervisord在生成子进程的时候会切换到该目录
- ;umask= ; umask for process (default None)
- ;priority= ; 权重,可以控制程序启动和关闭时的顺序,权重越低:越早启动,越晚关闭。默认值是999
- ;autostart=true ; 如果设置为true,当supervisord启动的时候,进程会自动启动
- ;autorestart=true ; 设置为随 supervisord 重启而重启,值可以是false、true、unexpected。false:进程不会自动重启
- ;startsecs= ; 程序启动后等待多长时间后才认为程序启动成功,默认是10秒
- ;startretries= ; supervisord尝试启动一个程序时尝试的次数。默认是3
- ;exitcodes=, ; 一个预期的退出返回码,默认是0,。
- ;stopsignal=QUIT ; 当收到stop请求的时候,发送信号给程序,默认是TERM信号,也可以是 HUP, INT, QUIT, KILL, USR1, or USR2
- ;stopwaitsecs= ; 在操作系统给supervisord发送SIGCHILD信号时等待的时间
- ;user=chrism ; 如果supervisord以root运行,则会使用这个设置用户启动子程序
- ;redirect_stderr=true ; 如果设置为true,进程则会把标准错误输出到supervisord后台的标准输出文件描述符
- ;stdout_logfile=/a/path ; 把进程的标准输出写入文件中,如果stdout_logfile没有设置或者设置为AUTO,则supervisor会自动选择一个文件位置
- ;stdout_logfile_maxbytes=1MB ; 标准输出log文件达到多少后自动进行轮转,单位是KB、MB、GB。如果设置为0则表示不限制日志文件大小
- ;stdout_logfile_backups= ; 标准输出日志轮转备份的数量,默认是10,如果设置为0,则不备份
- ;stdout_capture_maxbytes=1MB ; 当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB
- ;stdout_events_enabled=false ; 如果设置为true,当进程在写它的stderr
- ;stderr_logfile=/a/path ; 把进程的错误日志输出一个文件中,除非redirect_stderr参数被设置为true
- ;stderr_logfile_maxbytes=1MB ; 错误log文件达到多少后自动进行轮转,单位是KB、MB、GB。如果设置为0则表示不限制日志文件大小
- ;stderr_logfile_backups= ; 错误日志轮转备份的数量,默认是10,如果设置为0,则不备份
- ;stderr_capture_maxbytes=1MB ; 当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB
- ;stderr_events_enabled=false ; 如果设置为true,当进程在写它的stderr到文件描述符的时候,PROCESS_LOG_STDERR事件会被触发
- ;environment=A=,B= ; 一个k/v对的list列表
- ;serverurl=AUTO ; 是否允许子进程和内部的HTTP服务通讯,如果设置为AUTO,supervisor会自动的构造一个url
- ; The below sample eventlistener section shows all possible
- ; eventlistener subsection values, create one or more 'real'
- ; eventlistener: sections to be able to handle event notifications
- ; sent by supervisor.
- #这个地方是自定义一个守护进程
- [program:elasticsearch] ; 定义一个守护进程 elasticsearch
- environment=ES_HOME=/usr/local/elasticsearch ; 设置ES_HOME 环境变量
- user=elk ; 启动elasticsearch 的用户
- directory=/usr/local/elasticsearch ; 进入到这个目录中
- command=/usr/local/elasticsearch/bin/elasticsearch ; 执行启动命令
- numprocs= ; Supervisor启动这个程序的多个实例,如果numprocs>,则process_name的表达式必须包含%(process_num)s,默认是1
- autostart=true ; 设置为随 supervisord 启动而启动
- autorestart=true ; 设置为随 supervisord 重启而重启
- startretries= ; 设置elasticsearch 重启的重试次数
- priority= ; 权重,可以控制程序启动和关闭时的顺序,权重越低:越早启动,越晚关闭。默认值是999
- ;[eventlistener:theeventlistenername]
- ;command=/bin/eventlistener ; the program (relative uses PATH, can take args)
- ;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
- ;numprocs= ; number of processes copies to start (def )
- ;events=EVENT ; event notif. types to subscribe to (req'd)
- ;buffer_size= ; event buffer queue size (default )
- ;directory=/tmp ; directory to cwd to before exec (def no cwd)
- ;umask= ; umask for process (default None)
- ;priority=- ; the relative start priority (default -)
- ;autostart=true ; start at supervisord start (default: true)
- ;autorestart=unexpected ; restart at unexpected quit (default: unexpected)
- ;startsecs= ; number of secs prog must stay running (def. )
- ;startretries= ; max # of serial start failures (default )
- ;exitcodes=, ; 'expected' exit codes for process (default ,)
- ;stopsignal=QUIT ; signal used to kill process (default TERM)
- ;stopwaitsecs= ; max num secs to wait b4 SIGKILL (default )
- ;user=chrism ; setuid to this UNIX account to run the program
- ;redirect_stderr=true ; redirect proc stderr to stdout (default false)
- ;stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
- ;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
- ;stdout_logfile_backups= ; # of stdout logfile backups (default )
- ;stdout_events_enabled=false ; emit events on stdout writes (default false)
- ;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
- ;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
- ;stderr_logfile_backups ; # of stderr logfile backups (default )
- ;stderr_events_enabled=false ; emit events on stderr writes (default false)
- ;environment=A=,B= ; process environment additions
- ;serverurl=AUTO ; override serverurl computation (childutils)
- ; The below sample group section shows all possible group values,
- ; create one or more 'real' group: sections to create "heterogeneous"
- ; process groups.
- ;[group:thegroupname] ; 服务组管理,可以将多个服务名写到这里管理(组名自定义)
- ;programs=progname1,progname2 ; 上面配置好的服务名,比如elasticsearch,kibana,logstash
- ;priority= ; the relative start priority (default )
- ; The [include] section can just contain the "files" setting. This
- ; setting can list multiple files (separated by whitespace or
- ; newlines). It can also contain wildcards. The filenames are
- ; interpreted as relative to this file. Included files *cannot*
- ; include files themselves.
- [include]
- 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的安装与简单介绍的更多相关文章
- Kali安装zmap简单介绍
zmap是一个非常方便的扫描器,跟nmap和masscan一样,不过区别在于zmap他快,号称是一小时扫遍整个互联网.主要使用方式是TCP SYN scan.TCP connectscan.UDP s ...
- java web(一):tomcat服务器的安装和简单介绍,与eclipse关联
一:下载tomcat安装包和安装 这个百度一下就可以了. 安装完以后进入tomcat的安装路径查看 如图所示:有几个目录简单介绍下 bin目录: 存放运行tomcat服务器的相关命令. conf目 ...
- Postman安装与简单介绍
Postman简介 Postman是一个 Chrome 扩展,能提供强大的 Web API HTTP 请求调试功能.Postman能够发送任何类型的http请求,支持GET/PUT/POST/DELE ...
- postman插件的安装以及简单介绍
1:postman是干什么的? Postman官网上这么介绍的:“Modern software is built on APIs,Postman helps you develop APIs fas ...
- rocksDB 安装问题简单介绍
前一段时间准备测试rocksdb,按照帖子和官网的例子,在安装过程中遇到一些问题.这里给出的是在Ubuntu下安装python使用的版本. 首先,要感谢这些帖子对我的帮助: 1:http://tech ...
- percona-toolkit的安装及简单介绍
MySQL数据库是轻量级.开源数据库的佼佼者.其功能和管理,健壮性与Oracle相比还是有相当的差距.因此有非常多功能强大第三方的衍生产品,如percona-toolkit,XtraBackup等等. ...
- moogodb 安装及简单介绍
1,安装Moogodb 因为是windows 64位操作系统,直接到官网上下载.msi文件,下载完成后点击安装,点击同意协议之后,出现下面的对话框, Choose Setup Type, 就是选择安装 ...
- 性能测试三十八:Java性能分析神器-JProfiler安装和简单介绍
Jprofiler是一个重量级的工具,需要分别在服务器和windows都装客户端,会损耗性能,用于发现问题后排查问题,而不是常规的监控 JPROFILER工具下载地址:http://www.ej-te ...
- MongoDB安装和简单介绍
前面我们把nodejs的web开发入门说了,如今来说说数据库,一般搭配的数据库是mysql和mongodb,今天我们来说mongodb MongoDB是一个基于分布式文件存储的数据库,由C++语言编写 ...
随机推荐
- NopCommerce 在Category 显示Vendor List列表
实现效果如下: 1.在前台Web的Category Menu显示 Vendor; 2.点击Vendor 显示Vendor List列表: 主要配置步骤: 1.运行网站 Admin 后台 Categ ...
- Java--String 和StringBuilder、StringBuffer 的区别?
1.String是只读字符串,引用的字符串内容是无法改变的. 2.StringBuffer和StringBuilder的字符串对象可以直接进行修改. 3.StringBuilder没有被synchro ...
- JSON总结(二)——google-gson
gson是一个google的开源项目,支持多种JSON方法,这里主要讲解如何使用gson将json转换成javaBean. maven坐标 <dependency> <groupId ...
- jQuery中iframe的操作
今天遇到一个问题:怎样实现点击一个按钮,在当前的页面上新增加一个小窗口,展示一个图片信息? 如图: 点击之前: 单击之后: 分析:要使新增的小窗口不影响父页面,我们这里采用iframe的框架的技术. ...
- SpringAOP与Redis搭建缓存
近期项目查询数据库太慢,持久层也没有开启二级缓存,现希望采用Redis作为缓存.为了不改写原来代码,在此采用AOP+Redis实现. 目前由于项目需要,只需要做查询部分: 数据查询时每次都需要从数据库 ...
- CSS3学习总结——实现瀑布流布局与无限加载图片相册
首先给大家看一下瀑布流布局与无限加载图片相册效果图: 一.pic1.html页面代码如下: <!DOCTYPE html> <html> <head> <me ...
- 浅谈时钟的生成(js手写代码)
在生成时钟的过程中自己想到布置表盘的写法由这么几种: 当然利用那种模式都可以实现,所以我们要用一个最好理解,代码有相对简便的方法实现 1.利用三角函数 用js在三角函数布置表盘的过程中有遇见到这种情况 ...
- iOS陀螺仪 参数意义
self.mManager = [[CMMotionManager alloc]init]; self.mManager.deviceMotionUpdateInterval = 0.5; if (s ...
- Android Weekly Notes Issue #223
Android Weekly Issue #223 September 18th, 2016 Android Weekly Issue #223 本期内容包括: Offline时间戳处理; Acces ...
- Android中的自定义控件(二)
案例四: 自定义开关 功能介绍:本案例实现的功能是创建一个自定义的开关,可以自行决定开关的背景.当滑动开关时,开关的滑块可跟随手指移动.当手指松开后,滑块根据开关的状态,滑到最右边或者滑到 ...