美文网首页
supervisor 常用

supervisor 常用

作者: Busyasabee | 来源:发表于2021-02-19 17:06 被阅读0次

supervisor

https://blog.csdn.net/u011132987/article/details/103716093

1. 安装

pip install supervisor

2. supervior配置

echo_supervisord_conf > /tmp/supervisord.conf
sudo mv /tmp/supervisord.conf /etc
sudo mkdir /etc/supervisord

# 追加配置 /etc/.conf
[include]
files = /etc/supervisord/*.ini
生成应用配置文件

[program:celery_beat]
;指定运行目录
directory=/opt/code_ops/webroot
;运行目录下执行命令
command= /opt/code_ops/py3venv/bin/python3.6 /opt/code_ops/webroot/manage.py celery beat
;进程数
numprocs=1
;当supervisor启动时,程序将会自动启动
autostart=true
;自动重启
autorestart=true
; 启动失败时的最多重试次数
startretries=3
; 重定向stderr到stdout
redirect_stderr=true
; 在操作系统给supervisord发送SIGCHILD信号时等待的时间
stopwaitsecs=10
;设置为true,则在给程序发送SIGKILL信号的时候,会发送到整个进程组,它的子进程也会受到影响
killasgroup=true
; 输出日志
stdout_logfile=/tmp/celery_beat_out.log
;默认最大50M
stdout_logfile_maxbytes=10MB
;日志文件备份数,默认为10
stdout_logfile_backups=10
;错误日志 
;true表示禁止监听错误
redirect_stderr=false
stderr_logfile=/tmp/celery_beat_err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=3

[program:celery.work]
;指定运行目录 
directory=/opt/code_ops/webroot
;运行目录下执行命令
command=/opt/code_ops/py3venv/bin/python3.6 /opt/code_ops/webroot/manage.py celery -A xy_m worker --loglevel=info
;进程数
numprocs=1
;当supervisor启动时,程序将会自动启动
autostart=true
;自动重启
autorestart=true
; 启动失败时的最多重试次数
startretries=3
; 重定向stderr到stdout
redirect_stderr=true
; 在操作系统给supervisord发送SIGCHILD信号时等待的时间
stopwaitsecs=10
;设置为true,则在给程序发送SIGKILL信号的时候,会发送到整个进程组,它的子进程也会受到影响
killasgroup=true
;输出日志
stdout_logfile=/tmp/celery_work_out.log
;默认最大50M
stdout_logfile_maxbytes=10MB
;日志文件备份数,默认为10
stdout_logfile_backups=10
redirect_stderr=false
stderr_logfile=/tmp/celery_work_err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=3


[program:celery.flow]
;指定运行目录 
directory=/opt/code_ops/webroot
;运行目录下执行命令
command=/opt/code_ops/py3venv/bin/python3.6 /opt/code_ops/webroot/manage.py celery flower --address=0.0.0.0 --port=9991 --broker=redis://127.0.0.1:6379/8
;进程数
numprocs=1
;当supervisor启动时,程序将会自动启动
autostart=true
;自动重启
autorestart=true
; 启动失败时的最多重试次数
startretries=3
; 重定向stderr到stdout
redirect_stderr=true
; 在操作系统给supervisord发送SIGCHILD信号时等待的时间
stopwaitsecs=10
;设置为true,则在给程序发送SIGKILL信号的时候,会发送到整个进程组,它的子进程也会受到影响
killasgroup=true
;输出日志
stdout_logfile=/tmp/celery_flow_out.log
;默认最大50M
stdout_logfile_maxbytes=10MB
;日志文件备份数,默认为10
stdout_logfile_backups=10
redirect_stderr=false
stderr_logfile=/tmp/celery_flow_err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=3

常用命令

# 启动
supervisord -c /etc/supervisord.conf

(py3venv) [ops@pythonfat023198 supervisord]$ supervisorctl status
celery.flow                      RUNNING   pid 28475, uptime 0:09:25
celery.work                      RUNNING   pid 28476, uptime 0:09:25
celery_beat                      RUNNING   pid 28477, uptime 0:09:25
# 关闭supervisord需要通过supervisor的控制器
(py3venv) [ops@pythonfat023198 supervisord]$ supervisorctl -c /etc/supervisord.conf shutdown
Shut down
(py3venv) [ops@pythonfat023198 supervisord]$ supervisorctl status
(py3venv) [ops@pythonfat023198 supervisord]$ ps -ef |grep super
root     27120 26569  0 20:31 pts/7    00:00:00 vim supervisord.service
ops      29277 23874  0 20:55 pts/6    00:00:00 grep --color=auto super
# 重启supervisord也是通过supervisor的控制器
supervisorctl -c /etc/supervisord.conf reload

查看日志

(py3venv) [ops@pythonfat023198 supervisord]$ supervisorctl status
celery.flow                      RUNNING   pid 29367, uptime 0:01:45
celery.work                      RUNNING   pid 29368, uptime 0:01:45
celery_beat                      RUNNING   pid 29369, uptime 0:01:45
(py3venv) [ops@pythonfat023198 supervisord]$ supervisorctl tail celery.work
 
 -------------- celery@pythonfat023198 v3.1.26.post2 (Cipater)
---- **** ----- 
--- * ***  * -- Linux-3.10.0-693.el7.x86_64-x86_64-with-centos-7.4.1708-Core
-- * - **** --- 
- ** ---------- [config]
- ** ---------- .> app:         xy_m:0x7f14e3ec4f60
- ** ---------- .> transport:   redis://127.0.0.1:6379/8
- ** ---------- .> results:     redis://localhost:6379/9
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- 
--- ***** ----- [queues]
 -------------- .> celery           exchange=celery(direct) key=celery
                

[tasks]
  . apps.ops_nginx.tasks.add
  . ldap_sync.tasks.syncldap
  . xy_m.celery.debug_task

 
 -------------- celery@pythonfat023198 v3.1.26.post2 (Cipater)
---- **** ----- 
--- * ***  * -- Linux-3.10.0-693.el7.x86_64-x86_64-with-centos-7.4.1708-Core
-- * - **** --- 
- ** ---------- [config]
- ** ---------- .> app:         xy_m:0x7f8ee177ef60
- ** ---------- .> transport:   redis://127.0.0.1:6379/8
- ** ---------- .> results:     redis://localhost:6379/9
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- 
--- ***** ----- [queues]
 -------------- .> celery           exchange=celery(direct) key=celery
                

[tasks]
  . apps.ops_nginx.tasks.add
  . ldap_sync.tasks.syncldap
  . xy_m.celery.debug_task

相关文章

网友评论

      本文标题:supervisor 常用

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