Supervisor 是一個類 unix 作業系統下的進程監控管理工具。
安裝 Supervisor
Supervisor 是由 Python 寫成,可用 Python 的包安裝管理工具 pip(Python Package Index) 直接安裝:
複製代碼 代碼如下:
sudo pip install supervisor
配置 Supervisor
Supervisor 的設定檔命名為 supervisord.conf,它為 supervisord(Supervisor 的主服務命令) 和 supervisorctl(Supervisor 的監控管理命令) 提供配置選項設定。 Supervisor 並不規定設定檔 supervisord.conf 的存放位置,Supervisor 服務啟動的時候預設會在:
複製代碼 代碼如下:
$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf
這幾個目錄位置尋找設定檔 supervisord.conf。Supervisor 也提供參數 "-c" 來指定設定檔的目錄路徑。
在終端輸入 "echo_supervisord_conf" 命令可查看 Supervisor 的預設配置的內容。
產生一份預設的設定檔:
複製代碼 代碼如下:
echo_supervisord_conf > /etc/supervisord.conf
這裡有選擇的設定了一些配置,基本夠用,配置如下:
複製代碼 代碼如下:
[inet_http_server]
port = 127.0.0.1:9001
username = dhq
password = 123456
[unix_http_server]
file = /tmp/supervisor.sock
chmod = 0700
[supervisord]
logfile = /Users/dengjoe/.supervisor/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
nodaemon = False
minfds = 1024
minprocs = 200
umask = 022
identifier = supervisor
directory = /tmp
nocleanup = true
childlogdir = /tmp
[supervisorctl]
serverurl = unix:///tmp/supervisor.sock
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[program:shadowsocks]
directory = /Users/dengjoe/shadowsocks
command = /usr/bin/python /Users/dengjoe/shadowsocks/local.py
autostart = true
autorestart = true
啟動 Supervisor
複製代碼 代碼如下:
supervisord -c /etc/supervisord.conf
參數 "-c" 表示指定 Supervisor 設定檔的路徑
把 supervisord 加入系統啟動服務
複製代碼 代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
KeepAlive
SuccessfulExit
Label
dengjoe.supervisord
ProgramArguments
/usr/local/bin/supervisord
-n
-c
/etc/supervisord.conf
RunAtLoad
啟動 Supervisor 服務:
複製代碼 代碼如下:
launchctl load ~/Library/LaunchAgents/dengjoe.supervisord.plist
supervisorctl 監控命令
supervisorctl 是 Supervisor 內建的後台進程式控制制工具,下面是該命令的一些用法:
啟動應用:
複製代碼 代碼如下:
supervisorctl start program
重新讀取配置:
複製代碼 代碼如下:
supervisorctl update