一.介绍

Supervisord是用Python实现的一款非常实用的进程管理工具。supervisord会帮你把管理的应用程序转成daemon程序,而且可以方便的通过命令开启、关闭、重启等操作,而且它管理的进程一旦崩溃会自动重启,这样就可以保证程序执行中断后的情况下有自我修复的功能。

二.安装配置

supervisor的安装非常简单

1.替换yum源

这里我采用yum来安装,首先,需要替换成阿里云的yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache

2.安装相关组件及supervisor

yum install python-setuptools python-setuptools-devel supervisord -y

相关目录

配置文件:/etc/supervisord.conf
进程配置文件:/etc/supervisord/*.conf, 每个进程一个配置文件,根据服务器相关软件修改路径

服务管理

service supervisord start
service supervisord stop
service supervisord restart

修改配置文件
[官方文档]

mkdir /etc/supervisord/   #创建进程管理目录
echo "[include]" >> /etc/supervisord.conf
echo "files = /etc/supervisord/*.conf" >> /etc/supervisord.conf
添加web管理界面
echo "
[inet_http_server]         ; inet (TCP) server disabled by default
port=0.0.0.0:9001        ; (ip_address:port specifier, *:port for all iface)
username=admin              ; (default is no username (open server))
password=123456" >> /etc/supervisord.conf
http://192.168.1.1:9001

三.添加管理进程

cat > /etc/supervisord/gearmand.conf < < EOF
[program:gearmand]
command=/usr/local/sbin/gearmand
priority=1
numprocs=1
autostart=true
autorestar=true
startretries=10
stopsignal=KILL
stopwaitsecs=10
redirect_stderr=true
stdout_logfile=/etc/supervisord/gearmand.log
EOF

[官方文档]