前几天写了一个python脚本,根据一个网站提供的api,取数据。但是,由于网络不稳定,网站的服务质量较差等原因,脚本在运行过程中老出错。听师兄介绍一个工具,能监控进程的运行,在进程出错时进行自动重启,恰好能解决这个问题。下面是安装和配置方法。
1、安装
ubuntu系统上可以直接用apt-get进行安装:
sudo apt-get install supervisor
安装之后,会有两个可执行文件:
/usr/bin/supervisord -- supervisor服务守护进程
/usr/bin/supervisorctl -- supervisor控制台进程
在/etc/supervisor目录中存放着supervisor的配置文件:其中conf.d是一个子目录,其中存放着supervisor监管的进程的配置信息,一个进程有一个对
应的配置文件;supervisord.conf是supervisor的主配置文件,定义服务名称以及接口等等。
2、配置
现在要用supervisor监控一个脚本进程,在/etc/supervisor/conf.d中新建一个关于这个脚本进程的配置文件。
cd /etc/supervisor/conf.d
vim script.conf
其中输入:
[program:script.py] #程序的名字,在supervisor中可以用这个名字来管理该程序。
command=/home/hadoop/script1.1.py #启动程序的命令
autorstart=true #设置改程序是否虽supervisor的启动而启动
directory=/home/hadoop #相当于在该目录下执行程序
autorestart=true #程序停止之后是否需要重新将其启动
startsecs=10 #重新启动时,等待的时间
startretries=36 #重启程序的次数
redirect_stderr=true #是否将程序错误信息重定向的到文件
stdout_logfile=/home/hadoop/supervisor_log/log.txt #将程序输出重定向到该文件
stderr_logfile=/home/hadoop/supervisor_log/err.txt #将程序错误信息重定向到该文件
保存文件,便完成配置。
3、使配置更改生效
每次修改主配置文件或增改子配置文件都需要执行supervisorctl update使新配置生效。或者用supervisorctl reload重新重新启动supervisor程序。
4、开启基于http的UI控制台
修改主配置文件
vim /etc/supervisor/supervisord.conf,添加如下内容:
[inet_http_server]
port = 192.168.1.60:9001 #IP和绑定端口
username = admin #管理员名称
password = 123456 #管理员密码
这样,在浏览器中输入配置中写的地址和端口号,输入配置好的用户名和密码,便可以看到基于网页的控制台界面。从中,可以察看supervisor监控的>信息,可以察看进程的日志等。
下面是supervisor的主页,详细问题可以查看主页。
http://supervisord.org/
其实,可以通过supervisorctl打开supervisor的命令行控制台,然后输入help可以查看看用的命令,然后help+命令可以查看每个命令的具体功能。(貌似好多开源的工具都是这样做的。)
本人小白,欢迎拍砖。转载请注明出处。