1.下载包
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg
wget http://pypi.python.org/packages/source/s/supervisor/supervisor-3.0b1.tar.gz
2.安装
tar zxvf setuptools-0.6c11-py2.6.egg
cd setuptools
python setup.py install
tar zxvf meld3-0.6.10.tar.gz
cd meld3
python setup.py install
supervisor
tar -zxvf supervisor-3.0b1.tar.gz
python setup.py install
或者
easy_install supervisor
3.修改配置文件
include区段修改为
[include]
files = /etc/supervisord.conf.d/*.conf
如需要访问web控制界面,inet_http_server区段修改为
[inet_http_server]
port=0.0.0.0:9001
username=username ; 你的用户名
password=password ; 你的密码
每个需要管理的进程分别写在一个文件里面,放在/etc/supervisord.conf.d/目录下,便于管理。例如:test.conf
[program:sqlparse]
directory = /data_disk/webdata/python
command = python test.py
autostart = true
autorestart = true
startsecs=3
redirect_stderr=true
stdout_logfile=/data_disk/logs/test_py.log
将supervisord加入系统服务,以下代码来自gist,文件:/etc/init.d/supervisord
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PROGNAME=supervisord
DAEMON=/usr/bin/$PROGNAME
CONFIG=/etc/$PROGNAME.conf
PIDFILE=/tmp/$PROGNAME.pid
DESC="supervisord daemon"
SCRIPTNAME=/etc/init.d/$PROGNAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
start()
{
echo -n "Starting $DESC: $PROGNAME"
$DAEMON -c $CONFIG
echo "..."
}
stop()
{
echo -n "Stopping $DESC: $PROGNAME"
supervisor_pid=$(cat $PIDFILE)
kill -15 $supervisor_pid
echo "..."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令
supervisorctl:启动supervisor的命令行窗口。
运行命令:
supervisord //启动supervisor
supervisorctl //打开命令行
[root@vm14211 ~]# supervisorctl
redis RUNNING pid 24068, uptime 3:41:55
ctl中: help //查看命令
ctl中: status //查看状态
另外有一个坑需要注意:
如果修改了 /etc/supervisord.conf ,,需要执行 supervisorctl reload 来重新加载配置文件,否则会感觉没有生效,折腾到抓狂
supervisor 监控的进程必须以非daemon 方式运行
如Nginx要用supervisor 管理需要在配置文件增加一行
daemon off;