對於有些進程,我們不希望它出現意外的崩潰,如果萬一崩潰了,也希望可以自動能夠重啟,而不是手動去啟動他們,萬一半夜崩了,那不得半夜起來重啟服務?那滋味一定很酸爽。很典型的一種就是web服務,按照道理來講,服務器不宕機,應該是需要一直運行下去的。可是天意不可測,萬一哪天突然崩了呢? 所以我們需要一種機制,確保web服務崩了依然可以自啟。今天要介紹的supervisor就是作為一種進程守護,來監聽web服務,一旦web掛掉,supervisor會讓其自啟。確保web服務器不會處於掛掉狀態
安裝:
本人使用centos, 以下為該系統下安裝步驟及說明:
1. yum install supervisor # 使用yum安裝supervisor
2. systemctl enable supervisord.service # 設置開機自啟
3. 生成配置文件:
通常安裝好supervisor后會字典一個配置文件,在/etc/supervisord.conf, 我們可以直接
編輯這個文件, 或使用命令再重新生成個配置文件來編輯, 沒有區別
echo_supervisord_conf > /etc/目錄/supervisord.conf
以上命令可在/etc/目錄/下創建個supervisord.conf文件
4. 編輯配置文件:
打開新創建的supervisord.conf文件,最后添加以下代碼(參數講解見第5步):
5. 配置文件中的參數講解:
command='' # 啟動命令,與手動在命令行啟動的命令是一樣的,注意這里home不可用~代替
directory='' # 程序的啟動目錄
使用:
1. 啟動
supervisord # 使用默認的配置文件啟動, 即/etc/supervisord.conf
supervisord -c /etc/supervisord.conf # 指定配置文件啟動, 推薦使用該方法
supervisord -u user # 使用 user 用戶啟動supervisord
2. 查看supervisord是否在運行
ps -ef | grep supervisord
3. 進程的控制
supervisord啟動成功后,可以通過supervisorctl客戶端控制進程,啟動\停止\重啟. 運行supervisorctl命令,不加參數,
會進入supervisor客戶端的交互終端, 並會列出當前所管理的所有進程.
進入supervisorctl客戶端后有哪些操作命令, 可直接輸入help來查看每一項
再使用help 命令 可查看該命令的詳細使用; 比如 help start
補充:
supervisord還提供有web頁面的管理功能, 但配置文件中默認是沒有開啟的,需要修改配置文件, 打開http訪問權限
並配置訪問的信息, 即可使用配置好的用戶名和密碼來訪問web頁面.