supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。
组成部分
supervisord:服务守护进程
supervisorctl:命令行客户端
Web Server:提供与supervisorctl功能相当的WEB操作界面
XML-RPC Interface:XML-RPC接口
1安装supervisor
wget https://pypi.python.org/packages/44/80/d28047d120bfcc8158b4e41127706731ee6a3419c661e0a858fb0e7c4b2d/supervisor-3.3.0.tar.gz
tar zxf supervisor-3.3.0.tar.gz
cd supervisor-3.3.0
python setup.py install
2安装完成后 启动supervisord
cd /usr/bin
echo_supervisord_conf > /etc/supervisord.conf
./supervisord -c /etc/supervisord.conf
启动supervisord
3修改配置
vi supervisord.conf
新建一个目录 /etc/supervisor/ 用于存放这些配置文件,相应的,把 /etc/supervisord.conf 里 include 部分的的配置修改一下
[include]
files=/etc/supervisor/*.conf
进程监控配置
[program:activemqreceive]
command=go run reader.go
process_name=%(program_name)s
numprocs=1
directory=/data
umask=022
priority=999
autostart=true
autorestart=true
startsecs=10
startretries=3
exitcodes=0,2
stopsignal=TERM
stopwaitsecs=10
user=root
redirect_stderr=false
stdout_logfile=/a/path/a.txt
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/a/path/b.txt
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment=A="1",B="2"
serverurl=AUTO
一份配置文件至少需要一个 [program:x] 部分的配置,来告诉 supervisord 需要管理那个进程。[program:x] 语法中的x 表示 program name,会在客户端(supervisorctl 或 web 界面)显示,在 supervisorctl 中通过这个值来对程序进行 start、restart、stop 等操作。
更改配置后执行以下命令 重新加载配置·
supervisorctl update
supervisorctlreload
4 启动客户端控制台
注意:启动客户端之前要先运行supervisord
输入supervisorctl进入控制台
执行命令 start activemqreceive开始执行进程
supervisorctlstopactivemqreceive 停止进程
supervisorctl restartactivemqreceive重启进程