Mac下Supervisor進程監控管理工具的安裝與配置

Supervisor 是一個類 unix 操做系統下的進程監控管理工具。php

Supervisor 是由 Python 寫成,可用 Python 的包安裝管理工具 pip(Python Package Index) 直接安裝python

 

代碼以下:vim


sudo pip install supervisor

 

配置 Supervisorapp

Supervisor 的配置文件命名爲 supervisord.conf,它爲 supervisord(Supervisor 的主服務命令) 和 supervisorctl(Supervisor 的監控管理命令) 提供配置選項設置。 Supervisor 並不規定配置文件 supervisord.conf 的存放位置,Supervisor 服務啓動的時候默認會在:socket

 

複製代碼代碼以下:

$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf

 

這幾個目錄位置查找配置文件 supervisord.conf。Supervisor 也提供參數 "-c" 來指定配置文件的目錄路徑。ide

在終端輸入 "echo_supervisord_conf" 命令可查看 Supervisor 的默認配置的內容。工具

生成一份默認的配置文件:url

 

複製代碼代碼以下:

echo_supervisord_conf > /etc/supervisord.conf

 

這裏有選擇的設置了一些配置,基本夠用,配置以下:(下面只是參考)idea

複製代碼代碼以下:

[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
 
 
 添加進程配置

vim /etc/supervisor/idea.confspa


[program:xc-pms-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/local/opt/php@7.2/bin/php artisan queue:work --timeout=3600 --tries=3
directory=/Applications/MxSrvs/www/xc-pms
autostart=true
autorestart=true
user=user1
numprocs=4
redirect_stderr=true
stdout_logfile=/Applications/MxSrvs/www/xc-pms/storage/logs/xc-pms-worker.log

 

啓動 Supervisor

 

複製代碼代碼以下:

supervisord -c /etc/supervisord.conf

 

參數 "-c" 表示指定 Supervisor 配置文件的路徑

把 supervisord 加入系統啓動服務

 

複製代碼代碼以下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>Label</key>
    <string>dengjoe.supervisord</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/supervisord</string>
        <string>-n</string>
        <string>-c</string>
        <string>/etc/supervisord.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

 

啓動 Supervisor 服務:

 

複製代碼代碼以下:

launchctl load ~/Library/LaunchAgents/dengjoe.supervisord.plist

 

supervisorctl 監控命令

supervisorctl 是 Supervisor 自帶的後臺進程控制工具,下面是該命令的一些用法:

啓動應用:下面說明是ok的

sh-3.2# supervisord -c /etc/supervisord.conf

Unlinking stale socket /tmp/supervisor.sock

 

supervisorctl status

複製代碼代碼以下:

supervisorctl start program 

 

從新讀取配置:

 

複製代碼代碼以下:
supervisorctl update
相關文章
相關標籤/搜索