良好的程序设计——安装使用supervisord

Supervisord是用python实现的进程管理工具,我们可以用它来监控服务运行,安装使用方法如下

sudo easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
supervisord -c /etc/supervisord.conf

Supervisord默认的配置文件路径为/etc/supervisord.conf,通过文本编辑器修改这个文件

Supervisord安装完成后有两个可用的命令行supervisor和supervisorctl,命令使用解释如下:

supervisord,初始启动Supervisord,启动、管理配置中设置的进程。

supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。

supervisorctl start programxxx,启动某个进程

supervisorctl restart programxxx,重启某个进程

supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。

supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。

参考:http://www.54chen.com/java-ee/supervisord-manage-service.html 

配置示例如下:在/etc/supervisord.conf中添加如下代码,监控nginx进程

[program:web]
command=/usr/local/ciaos/sbin/nginx
process_name=%(program_name)s
umask=022
startsecs=0
stopwaitsecs=0
redirect_stderr=true
stdout_logfile=/tmp/codoon.log	;程序运行错误日志
;numprocs=4
;numprocs_start=1

1,运行supervisord -c /etc/supervisord.conf

2,此时无论我们如何kill正在运行的nginx进程,它都会被立刻唤醒,nginx的父进程就是supervisord进程

ciaos:~ # ps -ef | grep nginx
root     32157 32137  0 10:13 ?        00:00:00 /usr/local/ciaos/sbin/nginx

ciaos:~ # ps -ef | grep super
root     32137     1  0 10:13 ?        00:00:00 /root/bin/python /root/bin/supervisord -c /
etc/supervisord.conf

猜你喜欢

转载自ciaos.iteye.com/blog/1839098