supervisor 管理uwsgi 進程


Supervisor是用Python開發的一套通用的進程管理程序,能將一個普通的命令行進程變為后台daemon,並監控進程狀態,異常退出時能自動 重啟。它是通過fork/exec的方式把這些被管理的進程當作supervisor的子進程來啟動,這樣只要在supervisor的配置文件中,把要 管理的進程的可執行文件的路徑寫進去即可。也實現當子進程掛掉的時候,父進程可以准確獲取子進程掛掉的信息的,可以選擇是否自己啟動和報警

安裝:

Supervisor是python2寫就的一款強大的運維工具(其實現在已經支持Python3了 https://github.com/Supervisor/supervisor)
那么怎么利用Supervisor監控python3程序呢

通過指令:pip3 install git+https://github.com/Supervisor/supervisor

配置文件:

# supervisor名字
[program: your_supervisor_name]

#supervisor執行命令
command = uwsgi --init your_uwsgi.ini

#項目目錄
derectory = ......

#開始的時候等待多少秒
startsecs = 0

#停止時等待多少秒
stopawitsecs = 0

#自動開始
autorestart = true

#程序掛了是否重啟
autorestart = true

#輸出的log文件
stdout_logfile = .../log/supervisor.log

#輸出的錯誤文件
stderr_logfile = .../log/supervisor.err

#把 stderr 重定向到 stdout,默認 false
redirect_stderr = true

#stdout 日志文件大小,默認 50MB
stdout_logfile_maxbytes = 20M

[supervisor]
# log 級別
loglevel = info

啟動指令:

supervisord -c mycms_supervisor.conf

安裝supervisor時,默認安裝supervisord 和 supervisorctl

supervisorctl 相當於一個客戶端,去管理supervisord 的進程


配置:

#使用supervisorctl配置

[inet_http_server]
#supervisor服務器
port = :9001
username = admin
password = 123

[supervisorctl]
#使用supervisorctl的登錄地址和端口號
serverurl = http://127.0.0.1:9001

#登錄supervisorctl的用戶名和密碼
username = admin
password = 123

#不定義命名空間
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

操作指令
supervisorctl 全局進入

進入單個 進程 supervisorctl -c supervisor.conf

status #查看狀態
start programe_name #啟動程序
restart programe_name #重啟程序
stop programe_name #關閉程序
reload #重新加載配置文件
quit #退出控制台

supervisor 官網


免責聲明!

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



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