Centos7.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,就可以管理你服務器上的服務

 

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM