1,版本要求:
≥python2.4 & <python3
2,安裝命令:
sudo pip install supervisor
3,配置:
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
4,program配置:
爲方便各個app單獨維護,我自己創建了apps目錄來存儲各個app的配置
cd /etc/supervisor
mkdir apps
然後編輯/etc/supervisor/supervisord.conf,修改include配置項:
[include]
files = /etc/supervisor/apps/*.conf
5,啓動:
用-c參數來指定supervisord.conf的參數:
supervisord -c /etc/supervisor/supervisord.conf
6,管理:
# 讀取有更新(增加)的配置文件,不會啓動新添加的程序
$ supervisorctl reread
# 重啓配置文件修改過的程序
$ supervisorctl update
# 查看程序狀態
$ supervisorctl status
# 啓動程序 App_name
$ supervisorctl start App_name
# 關閉程序 App_name
$ supervisorctl stop App_name
# 重啓程序 App_name
$ supervisorctl restart App_name
也可以單獨執行supervisorctl,然後輸入不同的命令
7,program各個常用參數:
[program:appname] ;appname配置項
directory = /path/to/excute/command ; 在哪個目錄下執行命令
command = dotnet testapi.dll ; 啓動命令,如不設置directory則必須寫絕對路徑
autostart = true ; 在 supervisord 啓動的時候也自動啓動
startsecs = 5 ; 啓動 5 秒後沒有異常退出,就當作已經正常啓動了
autorestart = true ; 程序異常退出後自動重啓
startretries = 3 ; 啓動失敗自動重試次數,默認是 3
user = python ; 用哪個用戶啓動
redirect_stderr = true ; 把 stderr 重定向到 stdout,默認 false
stdout_logfile_maxbytes = 20MB ; stdout 日誌文件大小,默認 50MB
stdout_logfile_backups = 20 ; stdout 日誌文件備份數
; stdout 日誌文件,需要注意當指定目錄不存在時無法正常啓動,所以需要手動創建目錄(supervisord 會自動創建日誌文件)
stdout_logfile = /data/logs/aiohhttp.log
8,supervisor啓動異常-SPWAN ERROR:
絕大多數是日誌目錄或者日誌文件再或者就是supervisor.log和supervisor.sock文件的讀取權限導致的,例如用root用戶啓動supervisord時,創建的/tmp/supervisor.log和/tmp/supervisor.sock文件,殺掉supervisor後用其他用戶無法正常啓動,經查詢發現這兩個文件的權限屬組用戶其他用戶都沒有寫權限,這時候刪掉文件或更改授權後可正常啓動supervisor
---------------------
作者:踏雪追風
來源:CSDN
原文:https://blog.csdn.net/u010080628/article/details/79786495
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!