1 安裝 yum install y supervisor 如果提示沒有這個安裝包,則需要添加epel源 wget O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel 7.repo 2 配置要監控的程式 vim /etc/ ...
1 安裝
yum install -y supervisor
如果提示沒有這個安裝包,則需要添加epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2 配置要監控的程式
vim /etc/supervisord.d/test.ini
[program:test]
command = /usr/bin/nohup /usr/bin/python3 /opt/test_super.py >> /tmp/test.log 2>&1 &
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
startretries = 3
user = root
說明:
# [program:test] 指定程式名稱
directory = /usr/local/bin ; 程式的啟動目錄
command = /usr/local/bin/confd -config-file /etc/confd/confd.toml ; 啟動命令,與命令行啟動的命令是一樣的
autostart = true ; 在 supervisord 啟動的時候也自動啟動
startsecs = 5 ; 啟動 5 秒後沒有異常退出,就當作已經正常啟動了
autorestart = true ; 程式異常退出後自動重啟
startretries = 3 ; 啟動失敗自動重試次數,預設是 3
user = root ; 用哪個用戶啟動
redirect_stderr = true ; 把 stderr 重定向到 stdout,預設 false
stdout_logfile_maxbytes = 20MB ; stdout 日誌文件大小,預設 50MB
stdout_logfile_backups = 20 ; stdout 日誌文件備份數; stdout 日誌文件,需要註意當指定目錄不存在時無法正常啟動,所以需要手動創建目錄(supervisord 會自動創建日誌文件)
stdout_logfile = /etc/supervisord.d/log/confd.log ;日誌統一放在log目錄下; 可以通過 environment 來添加需要的環境變數,一種常見的用法是修改 PYTHONPATH; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
3 Surpervisor的啟動
supervisord -c /etc/supervisord.conf
4 操作說明:
supervisorctl -c /etc/supervisord.conf [start|stop|restart] [program-name|all]
supervisorctl stop programxxx,停止某一個進程(programxxx),programxxx 為 [program:beepkg] 里配置的值,這個示例就是 beepkg。
supervisorctl start programxxx,啟動某個進程。
supervisorctl restart programxxx,重啟某個進程。
supervisorctl status,查看進程狀態。
supervisorctl stop groupworker ,重啟所有屬於名為 groupworker 這個分組的進程(start,restart 同理)。
supervisorctl stop all,停止全部進程,註:start、restart、stop 都不會載入最新的配置文件。
supervisorctl reload,載入最新的配置文件,停止原有進程並按新的配置啟動、管理所有進程。
supervisorctl update,根據最新的配置文件,啟動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啟。