原文地址 https://www.cyberlight.xyz/pa...
上篇筆記 CentOS下經過Gunicorn+Nginx部署Python Flask網站,並配置https和Nginx訪客日誌 實現了Gunicorn部署Flask網站,採用新建 獨立命令窗口 的方法實現Gunicorn後臺運行。然而,實際生產環境中,咱們可能須要Gunicorn 隨服務器開機自啓 或 系統出錯時及時重啓。下面記錄我部署Supervisor的全過程。html
這篇筆記創建於 CentOS下經過Gunicorn+Nginx部署Python Flask網站,並配置https和Nginx訪客日誌 實現後的優化,若您暫沒有實現Gunicorn部署上線,請先閱讀它。nginx
環境: CentOS 7, Python 3.6.8flask
進入CentOS命令窗口,輸入以下命令安裝Supervisorsegmentfault
yum install supervisor
按提示操做,安裝完成後,默認位置爲 /etc/supervisord.conf 。咱們須要在 /etc/supervisord.d 目錄新建一個 ini 配置文件。這裏使用 vi 命令新建文件,以下bash
vi /etc/supervisord.d/xxx.ini #xxx爲自定義名稱
按下鍵盤 i 進入編輯頁面,輸入以下信息(SSH客戶端窗口按 Shift + Insert鍵 粘貼)服務器
[program:xxx] ; :右邊是項目名稱 directory = /www/flask/xxx ;程序的啓動目錄,這裏是Flask網站根目錄 command = /www/flask/xxx/venv/bin/gunicorn -w 4 -t 30 -b 0.0.0.0:5000 app:app ;啓動虛擬環境下的gunicorn,這裏建議使用絕對路徑 autostart = true ; 在 supervisord 啓動的時候也自動啓動 autorestart = true ;程序異常退出後自動重啓 stdout_logfile = /supervisor_log/supervisor.log ;日誌存放路徑,這個路徑須要是已存在的路徑 startsecs = 5 ; 啓動 5 秒後沒有異常退出,就看成已經正常啓動了 stopwaitsecs=0 ; 中止等待時間
上述信息中app
; 是註釋符 優化
command行 /www/flask/xxx/venv/bin/gunicorn 是該項目虛擬環境中Gunicorn的絕對路徑,請根據實際路徑不一樣靈活調整(Gunicorn的命令見筆記首部連接的文章)網站
輸入正確信息後,依次按下鍵盤 esc 鍵、: 鍵、w 鍵、q 鍵,而後回車(保存並退出)spa
此時已成功安裝並配置Supervisor,Supervisor貌似是自動啓動的,在命令窗口輸入
supervisorctl reload #保存配置文件並重啓
如圖,Supervisor已重啓
繼續輸入
supervisorctl
這時能看到 XXX RUNNING 字段,表明網站已啓動
如今試試重啓服務器吧!網站將自動啓動。
若更新了Flask源碼,輸入 supervisorctl reload 便可重啓新代碼
Supervisor經常使用命令以下:
supervisorctl shutdown
# 啓動某個進程
supervisorctl start programxxx
# 重啓某個進程
supervisorctl restart programxxx
# 中止所有進程 注:start、restart、stop都不會載入最新的配置文件
supervisorctl stop all
# 載入最新的配置文件,中止原有進程並按新的配置啓動、管理全部進程。
supervisorctl reload
# 根據最新的配置文件,啓動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啓。
supervisorctl update