supervisor管理服务

1、安装 python34.x86_64
yum install -y python34.x86_64

2、安装pip
python3 -m ensurepip –default-pip

3、更新
python3 -m pip install –upgrade pip setuptools wheel

4、安装 supervisor
pip install supervisor

5、配置supervisor
> /etc/supervisord.conf
cat >> /etc/supervisord.conf << EOF
[unix_http_server]
file=/tmp/supervisor.sock ; the path to the socket file

[supervisord]
logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10 ; # of main logfile backups; 0 means none, default 10
loglevel=info ; log level; default info; others: debug,warn,trace
pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false ; start in foreground if true; default false
minfds=1024 ; min. avail startup file descriptors; default 1024
minprocs=200 ; min. avail process descriptors;default 200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket

[program:tomcat]
directory=/home/changshan2/apache-tomcat-8.0.28/bin
command=/home/changshan2/apache-tomcat-8.0.28/bin/catalina.sh run
user=changshan2
stdout_logfile=/logs/tomcat/tomcat.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=20
autostart=true
autorestart=true
startsecs=10
stopasgroup=true
ikillasgroup=true
startretries=1
redirect_stderr=true

[program:activemq]
directory=/home/changshan2/apache-activemq-5.10.1/bin
command=/home/changshan2/apache-activemq-5.10.1/bin/activemq console
user=changshan2
stdout_logfile=/logs/activemq/activemq.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=20
autostart=true
autorestart=true
startsecs=10
stopasgroup=true
ikillasgroup=true
startretries=1
redirect_stderr=true

[program:bikeba]
directory=/home/changshan2/bike-ba-web-0.0.1-SNAPSHOT/
command=/bin/bash -c ‘cd /home/changshan2/bike-ba-web-0.0.1-SNAPSHOT&&/home/changshan2/bike-ba-web-0.0.1-SNAPSHOT/run.sh’
environment=NEST_HOME=/home/changshan2/nestfile
user=changshan2
stdout_logfile=/logs/bikeba/bikeba.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=20
autostart=true
autorestart=true
startsecs=10
stopasgroup=true
ikillasgroup=true
startretries=1
redirect_stderr=true

[program:access]
directory=/home/changshan2/bike-access-0.0.1-SNAPSHOT/
command=/bin/bash -c ‘cd /home/changshan2/bike-access-0.0.1-SNAPSHOT&&/home/changshan2/bike-access-0.0.1-SNAPSHOT/run.sh’
environment=NEST_HOME=/home/changshan2/nestfile
user=changshan2
stdout_logfile=/logs/access/access.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=20
autostart=true
autorestart=true
startsecs=10
stopasgroup=true
ikillasgroup=true
startretries=1
redirect_stderr=true

[program:jms]
directory=/home/changshan2/bike-jms-0.0.1-SNAPSHOT/
command=/bin/bash -c ‘cd /home/changshan2/bike-jms-0.0.1-SNAPSHOT&&/home/changshan2/bike-jms-0.0.1-SNAPSHOT/run.sh’
environment=NEST_HOME=/home/changshan2/nestfile
user=changshan2
stdout_logfile=/logs/jms/jms.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=20
autostart=true
autorestart=true
startsecs=10
stopasgroup=true
ikillasgroup=true
startretries=1
redirect_stderr=true

[program:message]
directory=/home/changshan2/message-server-0.0.1-SNAPSHOT/
command=/bin/bash -c ‘cd /home/changshan2/message-server-0.0.1-SNAPSHOT&&/home/changshan2/message-server-0.0.1-SNAPSHOT/run.sh’
environment=NEST_HOME=/home/changshan2/nestfile
user=changshan2
stdout_logfile=/logs/message/message.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=20
autostart=true
autorestart=true
startsecs=10
stopasgroup=true
ikillasgroup=true
startretries=1
redirect_stderr=true
EOF

;注:使用 vim /etc/supervisord.conf 命令模式替换用户目录。例如 :%s/changshan2/xxxxx/g
;或:使用 sed -i ‘s/changshan2/xxxxx/g’ /etc/supervisord.conf

6、启动并管理 supervisor
mkdir /logs/{tomcat,activemq,bikeba,access,message,jms} -p
/usr/bin/python3 /usr/bin/supervisord -c /etc/supervisord.conf

查看所有程序状态
# supervisorctl status
access RUNNING pid 110618, uptime 0:01:03
activemq RUNNING pid 110616, uptime 0:01:03
bikeba RUNNING pid 110626, uptime 0:01:03
jms RUNNING pid 110617, uptime 0:01:03
message RUNNING pid 110622, uptime 0:01:03
tomcat RUNNING pid 110630, uptime 0:01:03

只启动bikeba服务
# supervisorctl start bikeba
bikeba: started

暂停bikeba服务
# supervisorctl stop bikeba
bikeba: stopped

停止所有服务
# supervisorctl stop all
bikeba: stopped
jms: stopped
access: stopped
message: stopped
tomcat: stopped
activemq: stopped

启动所有服务
# supervisorctl start all
activemq: started
jms: started
access: started
message: started
bikeba: started
tomcat: started

检查配置文件有无改动
supervisorctl reread

重新加载,重新启动
supervisorctl reload

重新读取并重新加载守护进程的配置文件
supervisorctl update