軟硬體環境
-
centos7.6.1810 64bit
cat /etc/redhat-release #查看系統版本 -
supervisor 3.4.0
-
python 2.7.5
supervisor簡介
supervisor是一個用python語言撰寫的行程管理工具,它可以很方便的監聽、啟動、停止、重啟一個或多個行程,當一個行程意外被殺死,supervisor監聽到行程死后,可以很方便的讓行程自動恢復,不再需要程式員或系統管理員自己撰寫代碼來控制,
supervisord安裝
yum install -y epel-release
yum install -y supervisor
啟動&開啟自啟
systemctl start supervisord
systemctl enable supervisord
其他命令
systemctl stop supervisord
systemctl start supervisord
systemctl status supervisord
systemctl reload supervisord
systemctl restart supervisord
supervisor的web端
supervisor提供了基于web的控制,管理員可以通過在頁面上點點按鈕即可完成對行程的啟動、重啟等操作,甚是方便,
進入組態檔,開啟對web端的支持
vim /etc/supervisord.conf
如果提供給外部訪問,需要將port改為本機ip地址
#取消10-13行注釋,前面數字是行號
[inet_http_server] ; inet (TCP) server disabled by default
port=192.168.26.121:9001 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))
配置完成后重啟服務
systemctl restart supervisord
supervisord應用配置
進入supervisord組態檔
cat /etc/supervisord.conf
通過組態檔最后一行看到
[include]
files = supervisord.d/*.ini
也就是說,我們所有的應用組態檔都保存在這個目錄下,以.ini格式命名保存的,可以自行修改地址,但不要修改后綴
那我們來創建一個受監控的應用吧
創建測驗python配置
創建一個名稱叫做python的應用程式配置
vim /etc/supervisord.d/python.ini
組態檔內容,其中command就是我們應用程式啟動需要執行的命令
[program:python] #這里的python就是我們顯示在web前端以及終端的監控名稱
command=python /tmp/supervisordtest/test.py #我們要監控的檔案地址
autostart=true
autorestart=true
startsecs=1
startretries=3
redirect_stderr=true
stdout_logfile=/tmp/supervisordtest/access_python.log #日志地址,可自行配置目錄
stderr_logfile=/tmp/supervisordtest/error_python.log #日志地址,可自行配置目錄
創建test.py
mkdir /tmp/supervisordtest
vim /tmp/supervisordtest/test.py
程式內容:開啟一個死回圈,不停的列印內容
while True:
print(100)
重啟supervisord使組態檔生效
systemctl restart supervisord
查看應用是否正常啟動
1、命令查看
systemctl status supervisord
2、可視化web查看
web端可以重啟,停止,清理日志,查看日志等多個操作

supervisor相關的幾個命令
安裝完畢,會生成3個系統命令supervisorctl、supervisord和echo_supervisord_conf
-
supervisord,運行supervisor時會啟動一個行程supervisord,它負責啟動所管理的行程,并將所管理的行程作為自己的子行程來啟動,而且可以在所管理的行程出現崩潰時自動重啟 -
supervisorctl是命令列管理工具,可以用來執行 start stop restart 等命令,來對這些子行程進行管理, 如
sudo supervisorctl start demoweb其中demoweb是行程的名稱, 詳細的命令及說明見下面的這張表
命令 說明 supervisorctl start program_name 啟動某個行程 supervisorctl stop program_name 停止某個行程 supervisorctl restart program_name 重啟某個行程 supervisorctl status program_name 查看某個行程的狀態 supervisorctl stop all 停止全部行程 | \ supervisorctl reload 載入最新的組態檔,重啟所有行程 supervisorctl update 根據最新的配置,重啟配置更改過的行程,未更新的行程不受影響 -
echo_supervisord_conf用來生成默認的組態檔(默認組態檔,內容非常齊全且都有注釋,適合用時查閱,用法是這樣的
echo_supervisord_conf > test.conf
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/263616.html
標籤:其他
上一篇:痞子衡嵌入式:自識別特性(Auto Probe)可以讓i.MXRT1060無需FDCB也能從NOR Flash啟動
