【Linux】supervisord 进程管理,自动重启
supervisord的介绍:官网: http://supervisord.org/github:https://github.com/Supervisor/supervisor概述:软件功能:本软件是进程管理系统,可以很简单的管理系统,同时提供了很丰富的接口可以让你随心所欲的管理应用场景:常驻任务维护、管理,不论你的常驻进程是什么语言写的,都可以使用本神器管理...
·
supervisord的介绍:
- 官网: http://supervisord.org/
- github: https://github.com/Supervisor/supervisor
概述:
软件功能:
本软件是进程管理系统,可以很简单的管理系统,同时提供了很丰富的接口可以让你随心所欲的管理
应用场景:
-
- 常驻任务维护、管理,不论你的常驻进程是什么语言写的,都可以使用本神器管理
- 用来监控nginx, redis, mongodb等软件,实现软件如果因为异常挂了,可以自动重启,不至于终端服务
简单来讲:守护进程,如果你的进程一直在运行,突然挂了。 那么supervisord能帮你速度拉起这个进程,使之正常运行
架构:
supervisord: 服务端,真正用来监控程序的进程
supervisorctl: 客户端,用来管理监控程序的进程
安装:
说明:
-
- 我这里采用了一个自己约定的规范,方便组内成员形成共识,对服务管理没有学习成本
- 我是依赖python安装的
规范:
-
- 软件根目录: /data/opt
- 快捷方式根目录: /data/opt/scripts,其中本目录会加入到系统PATH中。export PATH='/data/opt/scripts':$PATH
- supervisord的配置目录、以及运行日志目录都放置在/data/opt/supervisord里
依赖:
python
安装:
pip install supervisor
配置文件
“echo_supervisord_conf”命令来生成配置文件,例
echo_supervisord_conf > /etc/supervisord.conf
配置管理的进程
在 /etc/supervisord.conf 最后加上这两句
[program:python]
command=python /tmp/test.py
/tmp/test.py的文件内容
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
while(True):
# 3秒
time.sleep(1)
# 打开文件
fo = open("/tmp/test.txt", "a")
print "文件名为: ", fo.name
str = time.ctime() + "\n"
fo.write( str )
# 关闭文件
fo.close()
启动supervisord
supervisord #回车即启动 -h 下可以看下参数的具体配置
查看 python的进程
可以看到 /tmp/test.txt 里面的内容在增加
测试
现在收到杀掉python test.py这个进程
kill -9 5535 杀死python test.py这个进程
然后再去查看进程 马上就可以看到 python test.py又出现了
看下 进程号 已经变成了 5592
参考:
更多推荐
已为社区贡献1条内容
所有评论(0)