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

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

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

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

1,安装Supervisor

1yum install epel-release 2yum install -y supervisor

2,生成配置文件

supervisord -c /etc/supervisord.conf

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

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

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

然后添加uwsgi服务的配置

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

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

1[uwsgi] 2 3chdir = /root/js_back 4module = js_back.wsgi 5master = true 6processes = 3 7socket = 0.0.0.0:8001 8vacuum = true 9pythonpath = /usr/bin/python3 10pidfile = /root/js_back/js_back.pid 11#注释掉daemonize模式,因为Supervisor无法控制守护进程服务 12#daemonize = /root/js_back/uwsgi.log

 启动服务

1supervisord -c /etc/supervisord.conf如果想杀死服务可以输入命令 2 3killall -s INT /usr/bin/python最后访问服务管理界面 http://ip:9001,就可以管理你服务器上的服务
点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

supervisor运行golang守护进程

Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,它提供了大量的功能来实现对进程的管理。程序的多进程启动,可以配置同时启动的进程数,而不需要一个个启动程序的退出码,可以根据程序的退出码来判断是否需要自动重启程序所产生日志的处理进程初始化的环境,包括目录,用户,umask,

Supervisor 开始

Supervisor是Linux/Unix操作系统上的进程管理工具。本文介绍了于Ubuntu18上如何使用Supervisor开机启动、保活守护自己的服务进程。安装建议系统方式安装,可开机启动。bashsudoaptinstallsupervisorySystemd查看服务状态:bash$sudosystemctlstatu

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