supervisor安装和配置




supervisor 是由python语言编写、基于linux操作系统的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能。

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

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

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

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

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

安装(Centos):

  1. # yum install python-setuptools
  2. # easy_install supervisor
  3. 如果easy_install不好使就从官方下载:
  4. 然后通过python安装:
  5. # tar zxf supervisor-3.1.3.tar.gz
  6. # cd supervisor
  7. # python setup.py install

成功安装后可以登陆python控制台输入import supervisor 查看是否能成功加载。

生成配置文件(supervisord.conf):

echo_supervisord_conf > /etc/supervisord.conf

修改配置文件:

在supervisord.conf最后增加(分号后边的表示注释,可以不写):

  1. [program:bandwidth]
  2. command=python26 /usr/local/bin/bandwidth.sh  ;需要执行的命令wd)
  3. user =root  ;(default  is  current  user , required  if  root)
  4. autostart=true  ;start at supervisord start (default: true)
  5. autorestart=true  ;whether/when to restart (default: unexpected)
  6. startsecs=3  ;number of secs prog must stay running ( def . 1)
  7. stderr_logfile=/tmp/bandwidth_err.log  ;redirect proc stderr to stdout (default false) 错误输出重定向
  8. stdout_logfile=/tmp/bandwidth.log  ;stdout log path, NONE  for  none; default AUTO, log输出
  9. (更多配置说明请参考:http://supervisord.org/configuration.html)

运行命令:

supervisord -c /etc/supervisord.conf  //启动supervisor

supervisorctl //打开命令行

  1. [root @iZ2365j7l5bZ  bin]# supervisorctl status   
  2. bandwidth                        RUNNING   pid  2423 , uptime  0 : 06 : 35   
  3. [root @iZ2365j7l5bZ  bin]# supervisorctl help   
  4.   
  5. default  commands (type help <topic>):   
  6. =====================================   
  7. add    clear  fg        open  quit    remove  restart   start   stop  update    
  8. avail  exit   maintail  pid   reload  reread  shutdown  status  tail  version  

ctl中: help //查看命令

ctl中: status //查看状态

另外需要注意:如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。

[配置文件]

[root@vm source]# echo_supervisord_conf > /etc/supervisord.conf

[监视一个程序]

; 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] /**我是注释,一定要把前面的分号;去掉,不然不会开启include功能,太傻了**/
files = /etc/supervisor/*.ini

在 /etc/supervisor/ 目录下建立 redis.ini 文件

[program:redis]
command=/usr/bin/redis-server /usr/local/redis/redis.conf
autorstart=true
autorestart=true
stdout_logfile=/tmp/supervisor.log

[Web配置]

[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9001        ; (ip_address:port specifier, *:port for all iface)
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

如果配置了用户名和密码,就需要输入用户名和密码才能进入web界面。

[启动supervisord]

[root@vm source]# supervisord可能会输出一堆信息出来/usr/lib/python2.6/site-packages/supervisor-3.1.3-py2.6.egg/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.'Supervisord is running as root and it is searching '
/usr/lib/python2.6/site-packages/supervisor-3.1.3-py2.6.egg/supervisor/options.py:383: DeprecationWarning: Parameters to load are deprecated.  Call .resolve and .require separately.return pkg_resources.EntryPoint.parse("x="+spec).load(False)

不用管它

  [root@vm source]# ps -ef |grep supervisordroot     20041     1  0 03:21 ?        00:00:00 /usr/bin/python /usr/bin/supervisord[root@vm source]# ps -ef| grep redisroot     20074 20073  0 03:23 ?        00:00:00 /usr/bin/redis-server *:6379

有上述进程,就表明成功了。

[WEB管理界面]

[命令行管理工具]

[root@vm source]# supervisorctl status
redis                            RUNNING   pid 20074, uptime 0:13:25


来源:http://www.cnblogs.com/sss-justdDoIt/p/5631513.html

supervisor安装和配置

直接命令 easy_install supervisor

如果报错先安装 yum install python-setuptools,再上面一条命令;

安装成功后显示finished,我们再次进行python环境,输入import supervisor ,如果没提示错误则表示安装成功。

接下来是对supervisor配置,首先我们要生成配置文件,在shell终端输入echo_supervisord_conf > /etc/supervisord.conf

接着编辑配置文件

vi /etc/supervisord.conf

这里,每个不同的项目,使用了一个单独的配置的文件,放置在 /etc/supervisor/ 下面,于是修改 /etc/supervisord.conf ,加上如下内容:

[include]
files = /etc/supervisor/*.conf
修改完后,我们便可以将项目的配置文件命名为 .conf 放置在 /etc/supervisor/ 下面即可。


例如在vi /etc/supervisor/usercenter.conf
[program:usercenter]
directory = /home/leon/projects/usercenter ; 程序的启动目录
command = gunicorn -c gunicorn.py wsgi:app  ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 5        ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
user = leon          ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/logs/usercenter_stdout.log
; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

运行命令:

 分服务端supevisord和客户端supervisorctl

sevice supervisord start

执行命令supervisorctl,启动supervisorctl,进入shell界面

> status    # 查看程序状态
> stop usercenter   # 关闭 usercenter 程序
> start usercenter  # 启动 usercenter 程序
> restart usercenter    # 重启 usercenter 程序
> reread    # 读取有更新(增加)的配置文件,不会启动新添加的程序
> update    # 重启配置文件修改过的程序
>reload      

如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。

=============================================

[unix_http_server]
file=/tmp/supervisor.sock   ; UNIX socket 文件,supervisorctl 会使用
;chmod=0700                 ; socket 文件的 mode,默认是 0700
;chown=nobody:nogroup       ; socket 文件的 owner,格式: uid:gid
;[inet_http_server]         ; HTTP 服务器,提供 web 管理界面
;port=127.0.0.1:9001        ; Web 管理后台运行的 IP 和端口,如果开放到公网,需要注意安全性
;username=user              ; 登录管理后台的用户名
;password=123               ; 登录管理后台的密码
[supervisord]
logfile=/tmp/supervisord.log ; 日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB        ; 日志文件大小,超出会 rotate,默认 50MB
logfile_backups=10           ; 日志文件保留备份数量默认 10
loglevel=info                ; 日志级别,默认 info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ; pid 文件
nodaemon=false               ; 是否在前台启动,默认是 false,即以 daemon 的方式启动
minfds=1024                  ; 可以打开的文件描述符的最小值,默认 1024
minprocs=200                 ; 可以打开的进程数的最小值,默认 200
; 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:///tmp/supervisor.sock ; 通过 UNIX socket 连接 supervisord,路径与 unix_http_server 部分的 file 一致
;serverurl=http://127.0.0.1:9001 ; 通过 HTTP 的方式连接 supervisord
; 包含其他的配置文件
[include]
files = relative/directory/*.ini    ; 可以是 *.conf 或 *.ini
http://www.ttlsa.com/linux/using-supervisor-control-program/-----挺详细的
随系统启动服务

centos7安装supervisord

    #yum -y install supervisor

    安装路径/usr/bin/supervisord,,配置文件/etc/supervisor.conf

 

一、手动启动/关闭

supervisor手动启动:

    #/usr/bin/supervisord -c /etc/supervisor.conf

supervisor手动关闭:

    #/usr/bin/supervisorctl stop all    先关闭supervisor启动脚本,之后再关闭supervisord服务

    #kill pid

supervisord开机自启动脚本(各版本系统):https://github.com/Supervisor/initscripts

 

二、添加开机自启动服务:

centos7 开机自启动脚本:

    #vim /lib/systemd/system/supervisord.service

# supervisord service for sysstemd (CentOS 7.0+)

# by ET-CS (https://github.com/ET-CS)

[Unit]

Description=Supervisor daemon


[Service]

ExecStart=/usr/bin/supervisord

ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown

ExecReload=/usr/bin/supervisorctl $OPTIONS reload

KillMode=process

Restart=on-failure

RestartSec=42s

 

[Install]

WantedBy=multi-user.target

 

这个自启动脚本需要修改/etc/supervisord.conf配置文件:

    #vim /etc/supervisrod.conf
        nodaemon=false    改成true

 

或者:#vim /lib/systemd/system/supervisord.service

[Unit]

Description=Process Monitoring and Control Daemon

After=rc-local.service

 

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf

SysVStartPriority=99

 

[Install]

WantedBy=multi-user.target

 

无需修改/etc/supervisord.conf配置文件

 

两个自启动脚本都能够添加到systemctl自启动服务

    #systemctl enable supervisord.service

    #systemctl start/restart/stop supervisord.service
 可能还需要chkconf supervisord on


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Guava入门~Strings

import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.Strings;/*** TODO 在此写上类的相关说明.<br>* author gqltt<br>* version 1.0.0 2021年11月11日<br>* see * since JDK 1.5.0*/ public class StringsDemo {/*…

六级没过

很不幸&#xff0c;六级没过&#xff0c;有点失落&#xff0c;想找块豆腐撞。 转载于:https://www.cnblogs.com/prayforsmile/archive/2008/03/04/1090604.html

斯坦福联合DeepMind提出将「强化学习和模仿学习」相结合,可实现多样化机器人操作技能的学习

原文来源&#xff1a;arXiv作者&#xff1a;Yuke Zhu、Ziyu Wang、Josh Merel、Andrei Rusu、Tom Erez、Serkan Cabi、Saran Tunyasuvunakool、Janos Kram ar、Raia Hadsell、Nando de Freitas、Nicolas Heess「雷克世界」编译&#xff1a;嗯~阿童木呀我们提出了一种无模型的深…

C++学习之路 | PTA乙级—— 1024 科学计数法 (20 分)(精简)

1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法&#xff0c;其满足正则表达式 [][1-9].[0-9]E[][0-9]&#xff0c;即数字的整数部分只有 1 位&#xff0c;小数部分至少有 1 位&#xff0c;该数字及其指数部分的正负号即使对正数也必定明…

Guava入门~CharMatcher

import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.CharMatcher;/*** TODO 在此写上类的相关说明.<br>* author gqltt<br>* version 1.0.0 2021年11月11日<br>* see * since JDK 1.5.0*/ public class CharMatcher…

用人不疑,疑人不用

用人不疑&#xff0c;疑人不用&#xff0c;这句古训是否正确呢&#xff1f;现在的社会也许有很多人认为已经不在适用了&#xff0c;不过我们看待问题还是一分为二&#xff0c;我觉得有不适用的理由&#xff0c;也有适用的理由。不适用的理由&#xff0c;搜索一下太多了&#xf…

大型传统企业如何向人工智能转型?

来源&#xff1a;FT中文网在新一波技术浪潮的冲击下&#xff0c;以AI、大数据、云计算、物联网、5G通信等一系列技术为代表的“技术簇”所引发的革命对人类社会的影响将是全面且深刻的。每一个商业单元都面对这样的机遇&#xff1a;能否通过对新技术的运用&#xff0c;为客户创…

C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)

1034 有理数四则运算 (20 分) 本题要求编写程序&#xff0c;计算 2 个有理数的和、差、积、商。 输入格式&#xff1a; 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数&#xff0c;其中分子和分母全是整型范围内的整数&#xff0c;负号只可能出现在分子前&…

linux 下载 命令 wget 和 curl

From&#xff1a;http://www.jb51.net/LINUXjishu/86326.html From &#xff1a;Linux curl 命令详解 - http://www.cnblogs.com/duhuo/p/5695256.html Linux curl 命令参数详解&#xff1a;http://www.aiezu.com/system/linux/linux_curl_syntax.html Linux下使用 curl &…

sql server存储过程中解决单引号的问题

一&#xff1a;目的想在sql中插入号&#xff0c;例如&#xff1a;select count&#xff08;*&#xff09;from user where nametoma)使用转义字符&#xff1a;select char(39)或select char(39)查询的结果是&#xff1a;例如&#xff1a;select char(39) 44555 char(39)查询的…

Guava入门~Charsets

import java.io.UnsupportedEncodingException; import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.Charsets;/*** TODO 在此写上类的相关说明.<br>* author gqltt<br>* version 1.0.0 2021年11月11日<br>* see * …

无人驾驶推进时间表及五大技术领域关键节点

来源&#xff1a;莫尼塔财新智库摘要&#xff1a;本文援引莫尼塔财新智库的一篇研究&#xff0c;系统梳理了无人驾驶各关键技术节点以及其成熟时间。”“汽车技术发展到如今&#xff0c;几乎没有人质疑无人驾驶会成为汽车行业变革的巨大浪潮&#xff0c;然而对于各项技术落地的…

C++学习之路 | PTA乙级—— 1040 有几个PAT (25 分)(精简)

1040 有几个PAT (25 分) 字符串 APPAPT 中包含了两个单词 PAT&#xff0c;其中第一个 PAT 是第 2 位&#xff0c;第 4 位(A)&#xff0c;第 6 位(T)&#xff1b;第二个 PAT 是第 3 位&#xff0c;第 4 位(A)&#xff0c;第 6 位(T)。 现给定字符串&#xff0c;问一共可以形成多…

linux sed 命令详解

参考&#xff1a;http://www.cnblogs.com/ctaixw/p/5860221.html sed 常用选项 和 常用命令 sed 是一个很好的文件处理工具&#xff0c;本身是一个管道命令&#xff0c;主要是 以行为单位 进行处理&#xff0c;可以将数据行进行替换、删除、新增、选取等特定工作。 sed 的用法 …

背景和弹出 Panel 都带有动画效果的 modal 效果

微软Ajax control toolKit 中有 ModalPopup 控件。可以实现页面遮盖的效果。但是遮盖直接出现&#xff0c;十分突然。我想能不能加上渐变的效果&#xff1f;这样感觉会好一点&#xff0c;炫一点。于是又想如果弹出的对话框(Panel)也有动画效果就会更炫了。于是就有了 Animation…

Guava入门~Objects

import java.util.Date; import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.Objects;/*** TODO 在此写上类的相关说明.<br>* author gqltt<br>* version 1.0.0 2021年11月11日<br>* see * since JDK 1.5.0*/ publi…

2018年,这些信息通信技术将大红大紫

来源&#xff1a;人民邮电报、中国信息通信研究院当今&#xff0c;全球信息通信产业又一次面临重大技术突破、产业升级的发展机遇&#xff0c;人工智能、第五代移动通信、虚拟现实、增强现实等新一代技术日益成熟&#xff0c;产业化进程加速。通过对全球信息通信行业重点智库技…

C++学习之路 | PTA乙级—— 1041 考试座位号 (15 分)(精简)

1041 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff…

实例探究Python以并发方式编写高性能端口扫描器的方法

来源&#xff1a;http://www.jb51.net/article/86615.htm 关于端口扫描器 端口扫描工具&#xff08;Port Scanner&#xff09;指用于探测服务器或主机开放端口情况的工具。常被计算机管理员用于确认安全策略&#xff0c;同时被攻击者用于识别目标主机上的可运作的网络服务。 端…

雅虎中国,奇虎全面杀入威客领域

中国互联网进入2008年&#xff0c;一个巨大的变化在不知不觉之中悄悄的走到人们的视野之中。 2008年3月&#xff0c;雅虎中国(cn.yahoo.com)推出了有奖建站和能人自荐栏目&#xff0c;通过悬赏万元鼓励互联网用户在雅虎中国开设个人网站&#xff0c;公布个人才能和智力作品。然…