欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mac下Supervisor进程监控管理工具的安装与配置

程序员文章站 2023-11-15 23:17:34
supervisor 是一个类 unix 操作系统下的进程监控管理工具。 安装 supervisor supervisor 是由 python 写成,可用 python...

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:*]
directory = /users/dengjoe/*
command = /usr/bin/python /users/dengjoe/*/local.py
autostart = true
autorestart = true

启动 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 自带的后台进程控制工具,下面是该命令的一些用法:

启动应用:

复制代码 代码如下:

supervisorctl start program

重新读取配置:

复制代码 代码如下:

supervisorctl update