Centos7.6上部署Supervisor来监控和操作各类服务

Stella981
• 阅读 725

supervisor    是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

    说白了,它真正有用的功能是俩个将非daemon(守护进程)程序变成deamon方式运行对程序进行监控,当程序退出时,可以自动拉起程序。

    但是它无法控制本身就是daemon的服务。

1,安装Supervisor

yum install epel-release
yum install -y supervisor

2,生成配置文件

supervisord -c /etc/supervisord.conf

然后修改配置文件 vim /etc/supervisord.conf

将web服务打开,需要注意ip地址要写*,否则外网访问不了,而username和password就是登录服务页面的用户名和密码,可以改的复杂一点,另外阿里云也需要向外网暴露一下9001端口

[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))

然后添加uwsgi服务的配置

[program:mypro]
command =uwsgi /usr/local/bin/uwsgi --ini /root/js_back/js_back_uwsgi.ini ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = false     ; 在 supervisord 启动的时候也自动启动
stopsignal=QUIT    
user=root
startsecs = 5     ; 启动 5 秒后没有异常退出,就当作已经正常启动了
startretries = 3   ; 启动失败自动重试次数,默认是 3
autorestart = true   ; 程序异常退出后自动重启
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile = /root/js_back_uwsgi.log
stderr_logfile = /root/js_back_err.log

最后我们知道,Supervisord只能控制非守护进程,而uwsgi本身就具备守护进程的配置,所以需要修改项目的uwsgi配置,将守护进程配置注掉 vim js_back_uwsgi.ini

[uwsgi]

chdir           = /root/js_back
module          = js_back.wsgi
master          = true
processes       = 3
socket            = 0.0.0.0:8001
vacuum          = true
pythonpath      = /usr/bin/python3
pidfile = /root/js_back/js_back.pid
#注释掉daemonize模式,因为Supervisor无法控制守护进程服务
#daemonize  = /root/js_back/uwsgi.log

 启动服务

supervisord -c /etc/supervisord.conf如果想杀死服务可以输入命令

killall -s INT /usr/bin/python最后访问服务管理界面 http://ip:9001,就可以管理你服务器上的服务
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
GoCoding GoCoding
3年前
Supervisor 开始
Supervisor是Linux/Unix操作系统上的进程管理工具。本文介绍了于Ubuntu18上如何使用Supervisor开机启动、保活守护自己的服务进程。安装建议系统方式安装,可开机启动。bashsudoaptinstallsupervisorySystemd查看服务状态:bash$sudosystemctlstatu
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
supervisor运行golang守护进程
Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,它提供了大量的功能来实现对进程的管理。程序的多进程启动,可以配置同时启动的进程数,而不需要一个个启动程序的退出码,可以根据程序的退出码来判断是否需要自动重启程序所产生日志的处理进程初始化的环境,包括目录,用户,umask,
Stella981 Stella981
3年前
Linux进程管理工具 Supervisor详解
Supervisor安装与配置(linux/unix进程管理工具)Supervisor(http://supervisord.org(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fsupervisord.org))是用Python开发的一个client/server服务,是Li
Wesley13 Wesley13
3年前
supervisor 管理进程
supervisor管理进程说明Supervisor是一个用Python写的进程管理工具,可以很方便的用来启动、重启、关闭进程.安装pipinstallsupervisor配置echo_supervisord_conf/etc/s
Easter79 Easter79
3年前
Supervisor中启动netcore网站
1.安装配置Supervisorsupervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功
Easter79 Easter79
3年前
Supervisor离线安装、管理
Supervisor(http://supervisord.org/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fsupervisord.org%2F))是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这