Mac下Supervisor进程监控管理工具的安装与配置
Supervisor是一个类unix操作系统下的进程监控管理工具。
安装Supervisor
Supervisor是由Python写成,可用Python的包安装管理工具pip(PythonPackageIndex)直接安装:
sudopipinstallsupervisor
配置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加入系统启动服务
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEplistPUBLIC"-//Apple//DTDPLIST1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="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服务:
launchctlload~/Library/LaunchAgents/dengjoe.supervisord.plist
supervisorctl监控命令
supervisorctl是Supervisor自带的后台进程控制工具,下面是该命令的一些用法:
启动应用:
supervisorctlstartprogram
重新读取配置:
supervisorctlupdate