站长资讯网
最全最丰富的资讯网站

CentOS 7.6上部署Supervisor来监控和操作各类服务

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,就可以管理你服务器上的服务
CentOS 7.6上部署Supervisor来监控和操作各类服务
赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号