怎么管理你的常驻job,自动启动?挂掉重启?用supervisod管理你的进程吧

如何管理你的常驻job,自动启动?挂掉重启?用supervisod管理你的进程吧

        我们可能有一台服务器,上边跑了许多常驻的job,就是一直在跑的程序,假设这台电脑突然停电了,你要一个一个起这些进程,假设某些进程意外挂掉了,你只能等到客户来投诉了才知道,噢。。我这个进程挂掉了,想找个解决这个问题?

       最近无意间用上了这个冬冬,我在ubuntu下,easy_install 装好,具体见http://supervisord.org/installing.html


然后需要生成一个配置文件

echo_supervisord_conf > /etc/supervisord.conf

这个需要root权限,但是我用sudo 执行,却提示权限不够,所以我把配置文件放在另外一个目录了

不过启动的时候需要指定一下路径

supervisord -c /home/xxx/supervisord.conf

现在来编辑supervisord.conf

关键几个点,一个是开启一个web管理页面,只要把

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123 

这几句前边分号去掉,注意port这个key,如果你想让外部的机器也可以访问,需要将127.0.0.1改成0.0.0.0端口随便写个,当然绑定这个端口的话,你需要用root权限启动

sudo supervisord -c /home/xxx/supervisord.conf

下边就是那个

;[program:theprogramname]


以及一系列的key值,这个是关键

每项具体的解释可以参见官方的文档http://supervisord.org

我们常用只需要这么几个

[program:test]
command=python /home/xxx/test.py
autostart=true
autorestart=true
startretries=5


相信你能看的懂


ok把这个复制进去,就相当于会启动一个 python /home/xxx/test.py

保存好了,你要运行

supervisorctl -c /home/xxx/supervisord.conf


然后输入 update

上边的python程序就跑起来了


访问localhost:9001发现有个叫test的是个绿色的running状态