1.前言
supervisor是乙個程序管理工具,當程序中斷的時候supervisor能自動重新啟動它,可以執行再各類的unix機器上,supervisor就是用python開發的一套通用的程序管理程式,能將乙個普通的命令列程序變為後台daemon,並監控程序狀態,異常退出時能自動重啟
2.安裝supervisor
一共有兩張安裝方式,一般採用方式二tar包的安裝方式,本文講解方式二安裝
安裝方法一:
yum -y install python-setuptools
easy_install supervisor
安裝方法二:
wget
tar zxvf supervisor-3.1.3.tar.gz
cd supervisor-3.1.3
python setup.py install
3.檢查是否安裝成功(輸出有配置檔案即為成功)
4.配置supervisor
4.1建立supervisor目錄和初始化配置檔案
mkdir -p /www/server/supervisor (我一般都喜歡存放再/www下的目錄,可自行更改)
echo_supervisord_conf > /www/server/supervisord.conf
4.2修改supervisord.conf配置檔案
file=/www/server/supervisor/supervisord.d/run/supervisor/supervisor.sock ; socket 路徑
[supervisorctl]
#socket 路徑
serverurl=unix:///www/server/supervisor/supervisord.d/run/supervisor.sock
[supervisord] ; supervisord 全域性配置 logfile=/www/server/supervisor/supervisord.d/log/supervisord.log ; supervisor 日誌路徑
pidfile=/www/server/supervisor/supervisord.d/run/supervisord.pid ; pid 檔案路徑
[include] ;為了不將所有新增的配置資訊寫乙個配置檔案,這裡標註乙個配置資訊存放目錄,方便管理 files = /www/server/supervisor/supervisord.d/conf/*.conf
注:可選修改配置,啟用web監控 --推薦不開啟佔資源
port=127.0.0.1:9001 ;看配置檔案都可自行修改
username=user
password=123
4.3建立日誌,程序配置資訊目錄等
mkdir -p /www/server/supervisor/supervisord.d
mkdir -p /www/server/supervisor/supervisord.d/run
mkdir -p /www/server/supervisor/supervisord.d/conf
mkdir -p /www/server/supervisor/supervisord.d/log
5.新增乙個程序資訊並啟動,如confd
vim /www/server/supervisor/supervisord.d/conf/confd.conf
[program:confd]
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 = /www/server/supervisor/supervisord.d/log/confd.log ;日誌統一放在log目錄下
; 可以通過 environment 來新增需要的環境變數,一種常見的用法是修改 pythonpath
; environment=pythonpath=$pythonpath:/path/to/somewhere
6.啟動surpervisord
方法一:
加軟連線:
ln -s /www/server/supervisor/supervisord.conf /etc/
supervisord -c /www/server/supervisor/supervisord.conf
方法二: 設定開機自啟
vim /usr/lib/systemd/system/supervisord.service
[unit]
description=process monitoring and control daemon
after=rc-local.service nss-user-lookup.target
[service]
type=forking
execstart=/usr/bin/supervisord -c /www/server/supervisor/supervisord.conf
execstop=/usr/bin/supervisord shutdown
execreload=/usr/bin/supervisord reload
killmode=process
restart=on-failure
restartsec=42s
[install]
wantedby=multi-user.target
systemctl start superxisord
systemctl stop superxisord
systemctl enables superxisord
systemctl status superxisord
7.supervisorctl命令詳解
supervisorctl status 檢視正在執行程序
supervisorctl update 更新新的配置檔案到supervisord.conf(不重啟已經再執行的程序)
supervisorctl reload 載入所有配置檔案,並啟動(需要重啟已經運動的程序)
supervisorctl start *** 啟動某個程序如文章的[program:beepkg],取program:beepkg
supervisorctl stop *** 關閉某個程序
supervisorctl restart *** 重啟某個程序
supervisorctl stop groupworker 重啟所有屬於名為groupworker紮個分組的程序(start,restart同理)
supervisorctl stop all 停止全部程序
安裝使用supervisor
yum install python setuptools easy install supervisor 測試安裝是否成功 echo supervisord conf 2.建立配置檔案 建立supervisor配置檔案目錄 etc supervisor mkdir m 755 p etc supe...
supervisor 安裝使用
安裝supervisor yum install supervisor y 更改配置檔案 vim etc supervisord.conf 新增一行配置 include files etc supervisord.d conf.d conf 儲存退出 啟動 supervisord c etc sup...
supervisor 安裝和使用
今天第一次在csdn上面寫部落格,希望以後能寫出更多的部落格。廢話不多說進入主題。supervisor是什麼?supervisor是python寫的程序管理工具可以,可以在linux環境下面監控程序,並且當程序掛掉的時候自動的拉起程序。supervisor在linux環境安裝時安裝上去了,也配置了配...