supervisord进程管理

supervisord进程管理
Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。

1、安装
安装环境 centos python2.4
安装 wget http://pypi.python.org/packages/source/s/supervisor/supervisor-3.0a10.tar.gz#md5=99c6fbd45bade87301296b7a597fb68e 
tar zxvf supervisor-3.0a10.tar.gz
cd supervisor-3.0a10
python setup.py install
如果上述遇到问题,请按如下操作。
依赖setuptools安装 wget http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c11-py2.4.egg#md5=bd639f9b0eac4c42497034dec2ec0c2b 
sh setuptools-0.6c11-py2.4.egg

2、配置
产生基础配置文件 echo_supervisord_conf > /etc/supervisord.conf
配置 [inet_http_server]前面的分号去掉; 定义port=192.168.1.1:8888 启动 supervisord -c /etc/supervisord.conf 查看 浏览器打开 http://192.168.10.129:9001 
深入配置 [program:service] 
command=sh /opt/soft/service/run.sh
目前我们用supervisord 监控 memcached 进程
[program:memcached] ###定义服务 
command=memcached -m 2000 -u nobody -l 0.0.0.0 -c 10240 -p 11211  ###服务运行时的显示的command
numprocs=1                                                                                       ###控制memcached启动的进程数
user=root                                                                                            ###程序运行的用户
autostart=true                                                                                     ###supervisord启动memcached启动
autorestart=true                                                                                  ###supervisord重启memcache自动重启
stdout_logfile=/var/log/memcached.stdout.log                                       ###监控memcached日志文件
redirect_stderr=true                                                                            ###将stderr重定向到stdout(或者创建个err.log)
stopsignal=QUIT

这个程序最好不能是daemon后台守护程序。supervisord会作为这个程序的父来启动它

3、启动
supervisord (以daemon方式启动)
或 supervisord -c /etc/supervisord.conf (非daemon)

supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl 简单的后台进程控制工具

supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。
supervisorctl reread,当一个服务由自动启动修改为手动启动时执行一下就ok

不带参数运行supervisord是以daemon方式运行
当supervisord以非daemon方式运行时,杀掉supervisord后,被监控的进程也退出了。
而以daemon方式运行,杀掉supervisord对被监控进程无影响

相关内容