python supervisor 检测代码变动重启_Supervisor-进程监控自动重启

Supervisor是一个进程监控程序。

需求一:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor

先弄懂两个命令:

supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令

supervisorctl:启动supervisor的命令行窗口。

需求二:redis-server这个进程是运行redis的服务。我们要求这个服务能在意外停止后自动重启。

安装(Centos下):

yum install python-setuptools

easy_install supervisor

测试是否安装成功:

echo_supervisord_conf

创建配置文件:

sudo su#切换到root用户,不然提示无权限

echo_supervisord_conf > /etc/supervisord.conf

修改配置文件:

在supervisord.conf最后增加:

[program:redis]

command = redis-server //需要执行的命令

autostart=true //supervisor启动的时候是否随着同时启动

autorestart=true //当程序跑出exit的时候,这个program会自动重启

startsecs=3 //程序重启时候停留在runing状态的秒数

(更多配置说明请参考:http://supervisord.org/configuration.html)

运行命令:

supervisord //启动supervisor

supervisorctl//打开命令行

结果:

redis RUNNING pid 24068, uptime 3:41:55

ctl中: help //查看命令

ctl中: status //查看状态

遇到的问题:

Q: redis出现的不是running而是FATAL 状态

A: 应该要去查看log,log在/tmp/supervisord.log

Q: 日志中显示:gave up: redis entered FATAL state, too many start retries too quickly

A: 修改redis.conf的daemonize为no

具体说明:http://xingqiba.sinaapp.com/?p=240

事实证明webdis也有这个问题,webdis要修改的是webdis.json这个配置文件

完成验证:

ps aux | grep redis

[root@vm1~]# ps aux | grep redis

root 30582 0.0 0.0 9668 1584 ? S 14:12 0:00 redis-server

kill 30582

[root@vm1 ~]# ps aux | grep redis

root 30846 0.0 0.0 9668 1552 ? S 15:19 0:00 redis-server

看到这个时候pid更新了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值