1.什麼是supervisor
supervisor是用python寫的一個進程管理工具,用來啓動,重啓,關閉進程。
環境:
2.安裝CentOS7擴展軟件倉庫:
yum install -y epel-release
3.安裝supervisor:
yum install -y supervisor
查看安裝了哪些文件以及所在的路徑:
rpm -ql supervisor
4.修改並定義ini文件:
4.1找到supervisor 的配置的文件,可以使用例如: whereis supervisord.conf 或者 find / -name supervisor* 命令進行查詢
4.2修改配置文件:
vim /etc/supervisor/supervisord.conf
4.3將配置文件最後一行修改ini 文件路徑,意爲:supervisor每次update都會加載這個自定義路徑文件夾下的所有後綴爲ini的文件。
4.4 創建ini文件,加入supervisor的進程管理中, 實現服務器後臺運行
[program:exmaple] # example是在supercisor中的進程名,隨便取啥
command=/usr/local/bin/gunicorn -w 4 -b 127.0.0.1:91 run:app
#上述代碼爲使用gunicorn 運行flask。run是你的文件名 :app指的是app = Flask(__name__)此處的app
或者是
command=/usr/local/bin/python3 /root/test/test.py
numprocs=1 ; number of processes copies to start (def 1)
autostart = true ; 在 supervisord 啓動的時候也自動啓動
startsecs = 1 ; 啓動 1 秒後沒有異常退出,就當作已經正常啓動了
autorestart = true ; 程序異常退出後自動重啓
startretries = 3 ; 啓動失敗自動重試次數,默認是 3
user = root ; 用哪個用戶啓動
redirect_stderr = true ; 把 stderr 重定向到 stdout,默認 false
stdout_logfile_maxbytes = 20MB ; stdout 日誌文件大小,默認 50MB
stdout_logfile_backups = 10 ; stdout 日誌文件備份數
stdout_logfile=/**自定義路徑/gunicorn.log ; log 日誌
stderr_logfile=/**自定義路徑/gunicorn.error ; 錯誤日誌的絕對路徑
5.啓動supervisor:
supervisord -c /etc/supervisor/supervisord.conf
關閉supervisor:
supervisorctl shutdown
重啓supervisor服務
supervisorctl restart
6.管理Supervisor服務
#開啓所有
supervisorctl start all
#開啓單個(配置文件裏你起得進程名字-->[program:myProgram])
supervisorctl start myProgram
#關閉所有
supervisorctl stop all
#關掉其中一個
supervisorctl stop example
#查看Supervisor 服務狀態
supervisorctl status
6.2 修改了Supervisor ini文件或者conf文件配置後,需要更新服務:
supervisorctl update # 更新supervisor的配置
supervisorctl reload # 重新加載項目到內存中
7.查看Superviso日誌
tail -f /var/log/supervisor/supervisord.log
至此,supervisor安裝完成。