阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

167次阅读
没有评论

共计 1594 个字符,预计需要花费 4 分钟才能阅读完成。

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 来监控和操作各类服务

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计1594字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中