supervisor进程管理简单使用

    好久没写博客了,本人喜欢私下研究和总结技术,但是并不太喜欢发表供给其他人,使用进程管理部署celery分布式爬虫项目已经使用了很久了,今天记录下使用过的技术。希望以后能常写博客。

简单介绍:

    supervisor是一个进程控制系统,python语言开发,目前只支持python2.7.可以监控可控制进程运行,若进程崩溃关闭,它可以自动重启进程。更多介绍可以浏览官方文档:http://supervisord.org

安装配置:

pip install supervisor

echo_supervisord_conf > /etc/supervisord.conf

  通过vi命令编辑配置文件,添加项目信息

;分布式中celery任务配置
[program:bd_news.worker]
;如果项目环境是python3需要指定虚拟环境python3/bin所在路径
environment=PATH=/root/.local/virtualenv/py3/bin
;指定运行目录
directory=/home/bdnews/bd_news_lang
;运行目录下执行命令
command=/root/.local/virtualenv/py3/bin/celery -A tasks.workers worker -l info
stdout_logfile=/tmp/bdnewscelery.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10

;启动设置
numprocs=1          ;进程数
autostart=true      ;当supervisor启动时,程序将会自动启动
autorestart=true    ;自动重启

;停止信号,默认TERM
;中断:INT (类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)
;终止:TERM (kill -TERM pid)
;挂起:HUP (kill -HUP pid),注意与Ctrl+Z/kill -stop pid不同
;从容停止:QUIT (kill -QUIT pid)
stopsignal=INT

;celery定时启动任务beat配置信息
[program:bd_news.beat]
;如果项目环境是python3需要指定虚拟环境python3/bin所在路径
environment=PATH=/root/.local/virtualenv/py3/bin
;指定运行目录
directory=/home/bdnews/bd_news_lang
;运行目录下执行命令
command=/root/.local/virtualenv/py3/bin/celery -A tasks.workers beat -l info
stdout_logfile=/tmp/bdnewscelerybeat.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10


;启动设置
numprocs=1          ;进程数
autostart=true      ;当supervisor启动时,程序将会自动启动
autorestart=true    ;自动重启

;停止信号
stopsignal=INT

相关命令:

1.通过配置文件启动supervisor

supervisord -c /etc/supervisord.conf

2.查看子进程运行状态

supervisorctl status

   

3.查看项目运行状况

supervisorctl tail programname stdout

4:项目更改重新加载supervisor

扫描二维码关注公众号,回复: 2398716 查看本文章
supervisorctl update
supervisorctl reload

web界面

配置可视化web界面需要在配置文件中添加[inet_http_server]选项组,一般不需要:

[inet_http_server]
port=ip:9001
username=username
password=password

访问http://ip:9001进行访问,如果在服务器上需要配置nginx

猜你喜欢

转载自blog.csdn.net/chenshaowen1/article/details/81220323