目录
前言环境准备supervisord.conf文件内容编写启动服务查看日志前言
Supervisor(‘http://supervisord.org/’)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。
它可以很方便的监听、启动、停止、重启一个或多个进程。
用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
(资料图片仅供参考)
环境准备
centos 安装 supervisord
yum install -y supervisord
debian 安装 supervisord
apt-get install -y supervisor
supervisord.conf
安装完成后在/etc/supervisor
目录下会有个配置文件 supervisord.conf
# cd /etc/supervisor /etc/supervisor# ls conf.d supervisord.conf
cat 查看内容
# cat supervisord.conf ; supervisor config file [unix_http_server] file=/var/run/supervisor.sock ; (the path to the socket file) chmod=0700 ; sockef file mode (default 0700) [supervisord] logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor ; ("AUTO" child log dir, default $TEMP) ; the below section must remain in the config file for RPC ; (supervisorctl/web interface) to work, additional interfaces may be ; added by defining them in separate rpcinterface: sections [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket ; The [include] section can just contain the "files" setting. This ; setting can list multiple files (separated by whitespace or ; newlines). It can also contain wildcards. The filenames are ; interpreted as relative to this file. Included files *cannot* ; include files themselves. [include] files = /etc/supervisor/conf.d/*.conf
在项目中我们需要用到此配置,可以在项目根目录导出一份
echo_supervisord_conf > ./supervisord.conf
文件内容编写
supervisord.conf文件内容编写, 前面内容不用改,直接接着在后面写
比如我需要后台启动celery的worker和beat服务
; Sample supervisor config file. ; ; For more information on the config file, please see: ; http://supervisord.org/configuration.html ; 前面文档省略,不用删,接着后面写 [program:celery-worker] command=celery -A hrun2_web worker -l info ; 管理命令,supervisor不支持后台进程 process_name=%(program_name)s #user=root ;进程启动用户 autostart=true ;是否随supervisor启动 autorestart=true ;是否在挂了之后重启,意外关闭后会重启,比如kill掉! startretries=3 ;启动尝试次数 stderr_logfile=./celery_worker.log ;标准输出文件 stdout_logfile=./celery_worker.log ;标准输出文件 loglevel=info ;日志的级别 [program:celery-beat] command=celery -A hrun2_web beat ; 管理命令,supervisor不支持后台进程 process_name=%(program_name)s #user=root ;进程启动用户 autostart=true ;是否随supervisor启动 autorestart=true ;是否在挂了之后重启,意外关闭后会重启,比如kill掉! startretries=3 ;启动尝试次数 stderr_logfile=./celery_beat.log ;标准输出文件 stdout_logfile=./celery_beat.log ;标准输出文件 loglevel=info ;日志的级别
启动服务
启动服务
supervisord -c /path/supervisord.conf
关闭服务
supervisorctl shutdown
运行过程,启动没问题,不显示任何内容,如果需要关闭用shutdown
root@13107c465557:/code# supervisord -c ./supervisord.conf root@13107c465557:/code# supervisorctl shutdown Shut down
查看启动的服务
supervisorctl status
执行结果如下
root@13107c465557:/code# supervisorctl status
celery-worker RUNNING pid 234, uptime 0:00:14
celery-beat RUNNING pid 235, uptime 0:00:14
说明启动了celery和celery-beat两个服务
查看日志
我们在配置里面指定了./celery_worker.log
文件保存运行日志,所以可以直接查看这个文件
tail -f celery_worker.log -n 30
运行就可以看到worker运行的日志了
参考教程 https://www.jb51.net/article/146238.htm
到此这篇关于python测试开发django之使用supervisord后台启动celery服务(worker/beat)的文章就介绍到这了,更多相关supervisord后台启动celery服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 9北京市市场监管局为企业纾困减负保护经济韧性
- 10市场监管总局发布限制商品过度包装标准和第1号修改单