美文网首页
利用supervisor管理程序

利用supervisor管理程序

作者: 热血大桃子 | 来源:发表于2019-05-10 20:28 被阅读0次

前面介绍了如何在centos7自定义系统服务来达到程序开机自启的目的,但如果程序运行挂掉了,必须等到机器重启或者人工去手动恢复。因此这里使用supervisor来进行程序管理。

安装

>>> yum install epel-release
>>> yum install supervisor
>>> systemctl enable supervisord # 开机自启动
>>> systemctl start supervisord # 启动supervisord服务
>>> systemctl status supervisord # 查看supervisord服务状态

配置

  • 接下来进行supervisor的配置,其配置文件默认目录在/etc/supervisord.conf。有两种方式配置管理自己的程序,一种是直接在/etc/supervisord.conf配置文件中的[program:theprogramname]配置相应的程序启动命令,一种是通过自定义*.ini文件的方式来挂载启动,我们可以看到配置文件最后一行有如下配置命令:
[include]
files = /etc/supervisord.d/*.ini

因此我们只需要在/etc/supervisord.d/创建我们自己的*.ini文件就好了,这里举例说明。

  • 我有一个贴吧爬虫程序,所以在/etc/supervisord.d/目录下新建一个tieba.ini文件,然后其中填入具体的配置,如下所示:
[program:tieba]
command= /root/anaconda3/envs/lch_spider/bin/python /home/lch/cetc10/tiebaspider/run_tieba_spiders.py ## 可以通过&& 执行多条命令
stdout_logfile=/home/lch/cetc10/tiebaspider/log.out # 日志文件
directory=/home/lch/cetc10/encyclopediaSpider/ # 在执行命令前,先进入此目录
environment=PATH=/root/anaconda3/envs/lch_spider/bin/ # 配置python环境,配置了这个,前面的command中的python就不用加具体的路径了
autostart=true # 随着supervisor的自启动而启动
autorestart=true # 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startsecs=5 # 启动5秒后没有异常退出,就表示进程正常启动了,默认为1秒
priority=999 # 进程启动优先级,默认999,值小的优先启动
stopasgroup=true # 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true # 默认为false,向进程组发送kill信号,包括子进程

配置完成后保存退出,然后重新启动supervisor:

>>> supervisorctl reload
>>> supervisorctl status # 查看状态
  • supervisor也提供了web管理程序,我们只需要将配置文件中的相应配置,按如下方式配置:
[inet_http_server]         ; inet (TCP) server disabled by default
port=0.0.0.0:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

配置完成后,重启程序,然后在浏览器中输入对应主机的ip就可以访问查看了。

相关文章

网友评论

      本文标题:利用supervisor管理程序

      本文链接:https://www.haomeiwen.com/subject/qcezoqtx.html