CentOS下經過Supervisor管理虛擬環境的Gunicorn Flask項目,實現開機自啓等功能

原文地址 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

相關文章
相關標籤/搜索