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

如何在Linux中使用Supervisor运维工具-创新互联

如何在Linux中使用Supervisor运维工具?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

专注于为中小企业提供成都网站设计、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业郸城免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

一、介绍

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。目前Supervisor可以运行在大多数Unix系统上,但不支持在Windows系统上运行。Supervisor需要Python2.4及以上版本,但任何Python 3版本都不支持。

二、自带Web管理程序

如何在Linux中使用Supervisor运维工具

Supervisor有四个组件:

1. supervisord
运行Supervisor的后台服务,它用来启动和管理那些你需要Supervisor管理的子进程,响应客户端发来的请求,重启意外退出的子进程,将子进程的stdout和stderr写入日志,响应事件等。它是Supervisor最核心的部分。

2. supervisorctl
相当于supervisord的客户端,它是一个命令行工具,用户可以通过它向supervisord服务发指令,比如查看子进程状态,启动或关闭子进程。它可以连接不同的supervisord服务,包括远程机上的服务。

3. Web服务器
这是supervisord的Web客户端,用户可以在Web页面上完成类似于supervisorctl的功能。

4. XML-RPC接口
这是留给第三方集成的接口,你的服务可以在远程调用这些XML-RPC接口来控制supervisord管理的子进程。上面的Web服务器其实也是通过这个XML-RPC接口实现的。

三、安装

下面介绍了三种方式,任选一种即可

1、安装

echo "supervisor-3.3.4安装(是, 请输入1 ; 否, 输入其他):" 
read SV
if [ "$SV" = "1" ];then 
	cd $basepath
	unzip $basepath/supervisor-3.3.4.zip 
	cd supervisor-3.3.4
	python setup.py install
	echo "supervisor-3.3.4 安装完成"
else
	echo "您选择了不安装supervisor-3.3.4"
fi

2、源码安装

 wget https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.4.tar.gz
 tar -zxvf supervisor-3.3.4.tar.gz
 cd supervisor-3.3.4
 python setup.py install #本地python版本为python2.7

3、yum安装

yum install supervisor

四、配置文件

如果安装后,没有/etc/supervisord.conf这个配置文件,则用命令生成:

echo_supervisord_conf > /etc/supervisord.conf

五、启动

supervisord -c /etc/supervisord/supervisord.conf 
	echo "supervisor-3.3.4 启动成功"

六、设置开机启动

systemctl enable supervisord.service

七、查看 supervisord 是否在运行

ps aux | grep supervisord

八、supervisorctl管理命令

supervisorctl status      # 状态
 supervisorctl stop nginx    #关闭 nginx
 supervisorctl start nginx    #启动 nginx
 supervisorctl restart nginx    #重启 nginx
 supervisorctl reload			  #重启全部
 supervisorctl update     #更新配置

此命令可以分着用,也可以合并使用

九、配置文件说明

[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,如果设成0,表示不限制大小
logfile_backups=10   ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info    ;日志级别,默认info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ;pid 文件
nodaemon=false    ;是否在前台启动,默认是false,即以 daemon 的方式启动
minfds=1024     ;可以打开的文件描述符的最小值,默认 1024
minprocs=200     ;可以打开的进程数的最小值,默认 200

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001 ; 通过HTTP的方式连接supervisord

; [program:xx]是被管理的进程配置参数,xx是进程的名称
[program:xx]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run ; 程序启动命令
autostart=true  ; 在supervisord启动的时候也自动启动
startsecs=10   ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true  ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3  ; 启动失败自动重试次数,默认是3
user=tomcat   ; 用哪个用户启动进程,默认是root
priority=999   ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
stopasgroup=false  ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false  ;默认为false,向进程组发送kill信号,包括子进程

;包含其它配置文件
[include]
files =/etc/supervisord.d/*.ini ;可以指定一个或多个以.ini结束的配置文件

十、ini配置文件 举例说明

[program:MysqlToRedis]
directory = /data/py/SmartServerModel/SmartServerModel/ModelManagerServer/
command= python3 -u mysql2redis_robot_config.py cs
autostart = true
autorestart=true
startsecs = 5
user =root
redirect_stderr = true
stdout_logfile = /data/logs/supervisord/mysqltoredis.log

[program:SmartBinLog]
command= /data/go/src/SmartBinLog/SmartBinLog
autostart = true
autorestart=true
startsecs = 5
user =root
redirect_stderr = true
stdout_logfile = /data/logs/supervisord/smartbinlog.log

[group:nlp]
programs=MysqlToRedis,SmartBinLog ;server,progname2 each refers to 'x' in [program:x] definitions
priority=999     ; the relative start priority (default 999)

十一、开启web页面管理程序

在conf配置文件中把注释的这几行代码全部解除注释,然后更改端口,用户名和密码

[inet_http_server]   ;HTTP服务器,提供web管理界面
port=127.0.0.1:9001  ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
username=user    ;登录管理后台的用户名
password=123    ;登录管理后台的密码

十二、解决“unix:///tmp/supervisor.sock no such file”问题

有时我们会遇到这个问题:

如何在Linux中使用Supervisor运维工具
解决方案很简单:

①、停止已有supervisorctl进程

如何在Linux中使用Supervisor运维工具

②、修改配置文件“/etc/supervisord.conf”,把tmp改成etc。/tmp目录下的文件会被操作系统定时回收,所以要修改

如何在Linux中使用Supervisor运维工具

③、以刚刚修改的配置文件开启supervisord,这样就恢复正常啦~

如何在Linux中使用Supervisor运维工具

关于如何在Linux中使用Supervisor运维工具问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。

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

订单提交后,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