欢迎访问玛尊真服务平台,本站唯一网址:www.isodyi.com,未经明确书面许可,任何人不得擅自使用“玛尊真”等商标。
玛尊真ISO认证服务公司

工作积累(十二)——Supervisor安装及使用-创新互联

Supervisor是由Python开发的用于监控类UNIX上进程运行状态的工具。在部署Python Web时,经常使用这样一种架构,即Nginx + Gunicorn + Supervisor + Django/Flask/Tornado/Webpy/Pyramid。Supervisor在这里起到的作用是监控Gunicorn,在Gunicorn宕掉后使其重启,增强系统的稳定性。推而广之,可以用Supervisor监控Tomcat,MySQL,Redis等。下面介绍一下其安装和使用。

成都创新互联主要从事网站设计制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务范县,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

1. 安装

Supervisor只能运行在类UNIX系统中,如Linux,Mac OS和Solaris等,不支持任何版本的Windows系统。同时,Supervisor需要Python 2.4或更新版本的Python支持。

下面介绍两种安装方式。

1.1 pip方式

在系统已安装pip且可以连接外网时,安装十分简单,pip install会和yum install、apt-get一样自动安装依赖文件:

[root@localhost ~]# pip install supervisor
1.2 手动安装

手动安装又分为可以连接外网和不能连接外网的情况,均需要setuptools的支持,否则在

python setup.py install

时会报如下错误:

Traceback (most recent call last):
  File "setup.py", line 32, in <module>
    from setuptools import setup, find_packages
ImportError: No module named setuptools

关于pip及setuptools的安装可以参考这里。

1.2.1 可以连接外网

可以连接外网时,python setup.py install会自动安装依赖文件:

[root@localhost ~]# cd /usr/local/src
[root@localhost src]# wget https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.3.tar.gz
[root@localhost src]# tar zxf supervisor-3.1.3.tar.gz
[root@localhost src]# cd supervisor-3.1.3
[root@localhost supervisor-3.1.3]# python setup.py install
1.2.1 不能连接外网

不能连接外网时,需要先手动安装Supervisor所依赖的文件,以下列出:

meld3

elementtree

其中,meld3是必须安装的,elementtree博主并未安装,依然可以成功,读者可以在安装完meld3后先试验一下,如果Supervisor可以安装成功,则可不再安装elementtree。

安装依赖文件的方法请参考1.2.1节,这里不再赘述。

安装成功后,多出4个命令文件,分别为supervisord,supervisorctl,pidproxy,echo_supervisord_conf,这些命令文件位于python安装目录下(和pip配置有关),如/usr/local/python2.7.10/bin/supervisord

2. 使用

Supervisor的配置文件采用Windows ini文件的风格,以;开头注释内容。使用安装Supervisor后产生的echo_supervisord_conf命令可以生成配置文件模板:

[root@localhost ~]# /usr/local/python2.7.10/bin/echo_supervisord_conf >> /etc/supervisord.conf

为了快速开始使用,仅对生成的配置文件模板做少许修改。详细的配置文件说明可以参考这里。

2.1 以root用户启动Supervisor

如果我们以root用户启动Supervisor,需要在[supervisord]下指定user=root

[supervisord]
...
user=root
...

启动Supervisor:

[root@localhost ~]# supervisord -c /etc/supervisord.conf

这里要说明的一点是,在运行Supervisor时,如果没有使用-c选项指定所使用的配置文件,Supervisor会自动依次寻找以下位置的配置文件:

$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf

如果在这些位置没有找到配置文件,会报如下错误信息:

Error: No config file found at default paths (/usr/etc/supervisord.conf, /usr/supervisord.conf, 
supervisord.conf, etc/supervisord.conf, /etc/supervisord.conf); use the -c option to specify a 
config file at a different path
2.2 监控进程

修改配置文件,在[program:custom_name]添加配置,这里我们以监控redis为例:

[program:redis_monitor]
command=/usr/local/redis/bin/redis-server /etc/redis.conf ;指定监控的命令,重要
directory=/root ;指定命令运行的目录
autorestart=true ;指定在什么情况下自动重启
user=root ;指定以哪个用户运行command命令
;其他配置使用默认值即可

重新启动Supervisor,建议使用如下方式启动,将其放入后台,同时将supervisord的运行日志放入nohup.out中:

[root@localhost ~]# nohup supervisord -n -c /etc/supervisord.conf &
2.3 supervisorctl

supervisorctl是一个Supervisor的命令行控制台,使用它可以方便的对supervisord进行重启、关闭,也可以对单独的[program:custom_name]进程监控进行启动、关闭等,当监控的进程较多时操作起来十分方便,能够做到选择性的启动、关闭被监控的进程。这里简单介绍一下它的用法。

在配置文件supervisord.conf中有对supervisorctl的配置,

[unix_http_server]          ; 采用unix socket连接supervisord server,默认开启
file=/tmp/supervisor.sock   ; 指定socket文件所在位置
;chmod=0700                 ; 指定socket文件权限,默认为0700
;chown=nobody:nogroup       ; 指定socket文件属主和属组
;username=user              ; 指定supervisorctl连接时需要使用的用户名,默认不需用户名
;password=123               ; 指定supervisorctl连接时需要使用的密码,默认不需密码

;[inet_http_server]         ; 采用HTPP连接supervisord server,默认关闭
;port=127.0.0.1:9001        ; 指定可以连接supervisord server的ip地址及其所使用的端口号,*:port针对任何ip开放连接权限
;username=user              ; 指定supervisorctl连接时需要使用的用户名,默认不需用户名
;password=123               ; 指定supervisorctl连接时需要使用的密码,默认不需密码

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; 使用unix socket连接supervisord server
;serverurl=http://127.0.0.1:9001 ; 使用HTTP连接supervisord server
;username=chris              ; 指定连接server时使用的用户名
;password=123                ; 指定连接server时使用的密码
;prompt=mysupervisor         ; 命令行提示符,默认为 supervisor>
;history_file=~/.sc_history  ; 打开命令行历史记录,可以使用↑↓键寻找历史命令

supervisorctl不能用来远程打开supervisord,使用如下命令连接已开启的Supervisord,其中-s指定连接server的形式(unix socket/HTTP),-u指定用户名,-p指定密码:

[root@localhost ~]# supervisorctl -s unix:///tmp/supervisor.sock -u user -p 123

如果在配置文件中已经将这些参数在[supervisorctl]中配置完成,可直接执行配置文件进行连接,连接后

[root@localhost ~]# supervisorctl -c /etc/supervisord.conf
redis.monitor                    RUNNING   pid 54662, uptime 0:49:38

连接成功后可以通过其中的help命令查看可以使用的命令及每条命令的作用:

supervisor> help

default commands (type help <topic>):
=====================================
add    clear  fg        open  quit    remove  restart   start   stop  update 
avail  exit   maintail  pid   reload  reread  shutdown  status  tail  version

supervisor> help reload
reload      Restart the remote supervisord.

针对每条命令的作用这里不再赘述,另外说明一点,当开启[inet_http_server]时可以从浏览器中查看supervisord运行状态,读者可以自己尝试一下。

Supervisor不止可以监控进程,还有其他功能,这里我们只介绍了这个常用功能,有兴趣的读者可以参考其官方文档。

完。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

上一篇:没有了
快速申请办理
称呼: *
电话: *

订单提交后,10分钟内,我们将安排工作人员和您联系!

热点资讯
联系我们
大悟县玛尊真商贸有限公司
电   话:0712-7218610

传   真:0712-7218610

谭经理:18980820575

王主任:135 1821 9792

邮   箱:631063699@qq.com

地   址:湖北省孝感市大悟县城关镇鄂北物流城13栋125号

微信二维码
扫一扫 关注我们
电话:

189-8208-1108

湖北省孝感市大悟县城关镇鄂北物流城13栋125号八戒云创空间-D1-430

ISO体系认证
iso认证
服务体系认证
有机产品认证
OHSAS18001
ITSS认证
信用评级
中国招标企业信用认证
资信等级
重合同守信用
企业信用认证
中国诚信供应商
质量、服务诚信认证
CMMI
CMMI1
CMMI2
CMMI3
CMMI4
CMMI5
系统集成
系统集成一级
信息系统集成二级
信息系统集成三级
信息系统集成四级
涉密信息系统集成
资质许可证
生产许可证认证
GS认证
CCC认证
中国节能认证
十环认证
知识产权

Copyright © 2002-2025

大悟县玛尊真商贸有限公司 版权所有

备案/许可证号:鄂ICP备2025140345号-7   网站建设创新互联
 
QQ在线咨询
客服咨询
咨询热线
189-8208-1108