如何管理你的常驻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状态
补充:综合编程 , 其他综合 ,