Linux 下python 利用supervisord自动重启多进程

时间:2021-01-17 14:55:33

1、安装supervisord

利用SecureCRT进入Linux环境,输入python,进入python shell环境,import  supervisor看是否安装了supervisord,若没有安装,

yum install python-setuptools
easy_install supervisor
如果easy_install不好使就在windows下从官方下载解压后并上传到Linux:
https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz
cd supervisorpython setup.py install

如下提示,安装完成:

12 Using /usr/lib64/python2.7/site-packagesFinished processing dependencies for supervisor==3.3.1
2、配置supervisord

a.创建文件夹和配置文件

mkdir /etc/supervisor
echo_supervisord_conf
> /etc/supervisor/supervisord.conf

b.修改/etc/supervisor/supervisord.conf文件内容

在文件结尾[include]节点处添加下面内容,保存退出,注意program:后的名字

[program: TomasMail]
command=python /usr/local/jobmail/Study/TomasMail.py
autorestart=true ; 程序意外退出是否自动重启
autostart=true ; 是否自动启动
startsecs=5    ; 自动重启间隔 
startretries=3  ; 启动失败自动重试次数,默认是 3
redirect_stderr=true  ;将stderr重定向到stdout
stdout_logfile=/usr/local/jobmail/Study/TomasMail.log ; 输出日志文件

[program: TomasSend]
command=python /usr/local/jobmail/Study/TomasSend.py
autorestart=true  
autostart=true  
startsecs=5
startretries=3
redirect_stderr=true
stdout_logfile=/usr/local/jobmail/Study/TomasSend.log

一份配置文件至少需要一个 [program:x] 部分的配置,来告诉 supervisord 需要管理哪个进程。


3、 运行supervisord:

supervisord -c /etc/supervisor/supervisord.conf
ps -le | grep supervisord 查看supervisord是否启动,有进程号,若修改supervisord.conf,需要把supervisord删除(kill 进程号)后再运行
supervisord -c /etc/supervisor/supervisord.conf

4、测试supervisord是否正确配置

ps aux|grep python  显示运行的进程,删除supervisord配置中的程序,看是否会重启。