準備
- python 升級到 2.7+
- pip 升級到 20.0+
- 具備 root 權限
- 官方參考文檔 http://supervisord.org
安裝
1、在線安裝
pip install supervisor
參考文檔: Internet-Installing With Pip
2、生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
參考文檔: Creating a Configuration File
3、配置文件個性化
參考文檔: Configuration File
vi /etc/supervisord.conf
修改 sock 目錄
[unix_http_server]
;file=/tmp/supervisor.sock ; (the path to the socket file)
;建議修改爲 /var/run 目錄,避免被系統刪除
file=/var/run/supervisor.sock ; (the path to the socket file)
開啓http訪問
[inet_http_server] ; inet (TCP) server disabled by default
port=*: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))
指定log目錄
[supervisord]
;logfile=/tmp/supervisord.log ; 日誌文件(main log file;default $CWD/supervisord.log)
;建議修改爲 /var/log 目錄,避免被系統刪除
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
指定pid目錄
;pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
;建議修改爲 /var/run 目錄,避免被系統刪除
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
客戶端 sock 目錄統一
[supervisorctl]
; 必須和'unix_http_server'裏面的設定匹配
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
;建議修改爲 /var/run 目錄,避免被系統刪除
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
添加擴展配置文件目錄(記得 mkdir )
[include]
files = /etc/supervisor/*.conf
4、項目擴展文件配置
//建立日誌目錄
mkdir /var/log/supervisor/
//建立擴展文件目錄
mkdir /etc/supervisor/
cd /etc/supervisor/
vi demo.conf
配置文件示例
參考文檔: [program:x] Section Settings
[program:dispose]
directory = /tmp
command = /usr/bin/example --loglevel=%(ENV_LOGLEVEL)s
autostart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisor/newms_dispose.log
運行
supervisord -c /etc/supervisord.conf
如果出錯提示 supervisord 命令不存在,則建立軟鏈接:
ln -s /usr/local/bin/supervisord /usr/bin/supervisord
同樣針對 supervisorctl 命令也一樣建立軟連接:
ln -s /usr/local/bin/supervisorctl /usr/bin/supervisorctl
查看運行狀態
supervisorctl status
會顯示出配置進程的運行情況
newms RUNNING pid 2391, uptime 0:45:27
tian RUNNING pid 2392, uptime 0:45:27
查看在線界面
瀏覽器裏輸入上方配置文件裏的地址,如果開啓用戶、密碼,填入配置文件裏指定的即可。
開機啓動
CENTOS 7+
vi /usr/lib/systemd/system/supervisord.service
文件內容參考:
centos-systemd-etcs
//開機啓動
systemctl enable supervisord
//檢驗
systemctl is-enabled supervisord
//停止服務
systemctl stop supervisord
//開啓服務
systemctl start supervisord
//檢查是否正常運行
supervisorctl status
CENTOS 6
#開機啓動
vi /etc/rc.local
# 添加以下內容
/usr/bin/supervisord -c /etc/supervisord.conf
#啓動
supervisord -c /etc/supervisord.conf
#關閉
supervisorctl shutdown
#檢查是否正常運行
supervisorctl status