zoukankan      html  css  js  c++  java
  • supervisor 安装与使用

    supervisor 安装与使用

    • 下载

      sudo apt-get install supervisor
      
    • /etc/supervisor/conf.d/ 下新建 xx.conf

      sudo touch celery_req.conf
      
    • 编辑配置信息

      [program:celery_req]
      # 项目目录
      directory=/home/ubuntu/cache-task/
      # 执行命令
      command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/celery -A celery_tasks.tasks.req worker -l info
      # 子进程启动N秒后,如果状态为running,则认为启动成功
      startsecs=1
      # 哪个用户执行
      user = ubuntu
      # 随着supervisord启动,也一并启动。
      autostart=true
      # 日志输出 
      stderr_logfile=/home/ubuntu/cache-task/logs/req_stderr.log
      stdout_logfile=/home/ubuntu/cache-task/logs/req_stdout.log
      #把stderr重定向到stdout,默认 false
      redirect_stderr = true
      #stdout日志文件大小,默认 50MB
      stdout_logfile_maxbytes = 20MB
      #stdout日志文件备份数
      stdout_logfile_backups = 20
      
      [program:celery_cron]
      # 项目目录
      directory=/home/ubuntu/cache-task/
      # 执行命令
      command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/celery -A celery_tasks.tasks.cron worker -l info
      # 子进程启动N秒后,如果状态为running,则认为启动成功
      startsecs=1
      # 哪个用户执行
      user = ubuntu
      # 随着supervisord启动,也一并启动。
      autostart=true
      # 日志输出 
      stderr_logfile=/home/ubuntu/cache-task/logs/cron_stderr.log
      stdout_logfile=/home/ubuntu/cache-task/logs/cron_stdout.log
      
      [program:celery_cron_beat]
      # 项目目录
      directory=/home/ubuntu/cache-task/
      # 执行命令
      command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/celery -A celery_tasks.tasks.cron beat
      # 子进程启动N秒后,如果状态为running,则认为启动成功
      startsecs=1
      # 哪个用户执行
      user = ubuntu
      # 随着supervisord启动,也一并启动。
      autostart=true
      # 日志输出 
      stderr_logfile=/home/ubuntu/cache-task/logs/cron_beat_stderr.log
      stdout_logfile=/home/ubuntu/cache-task/logs/cron_beat_stdout.log
      
    • 启动 supervisord

      sudo supervisord -c /etc/supervisor/supervisord.conf
      
    • 查看是否启动

      sudo supervisorctl
      
    • 添加新的配置文件

      这里不要写 daemonize 日志输出 ,这会和 supervisor 会起冲突。

      # uwsgi 配置文件
      [uwsgi]
      # 配合nginx使用
      http = 127.0.0.1:5000
      # 项目路径
      chdir = /home/ubuntu/cache-task
      # 启动模块
      module = main:app
      # 指定工作进程
      processes = 4
      # 主进程
      master = true
      # 每个工作进程有2个线程
      threads = 2
      # 保存主进程的进程号,要写绝对路径
      pidfile = uwsgi.pid
      #虚拟环境环境路径
      virtualenv = /home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea
      

      这里是supervisor 关于 uwsgi.conf 的文件。

      # supervisor 关于uwsgi的配置文件 /etc/supervisor/conf.d/uwsgi.conf
      [program:uwsgi]
      # 项目目录
      directory=/home/ubuntu/cache-task/
      # 执行命令
      command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/uwsgi --ini uwsgi.ini
      # 子进程启动N秒后,如果状态为running,则认为启动成功
      startsecs=5
      # 哪个用户执行
      user=ubuntu
      # 随着supervisord启动,也一并启动。
      autostart=true
      # 日志输出
      stderr_logfile=/home/ubuntu/cache-task/logs/uwsgi_stderr.log
      stdout_logfile=/home/ubuntu/cache-task/logs/uwsgi_stdout.log
      
    • 平滑启动

      # 1. 启动 supervisor 客户端
      sudo supervisorctl
      # 2. 读取新添加的配置文件
      reread
      # 3. 更新配置文件
      update
      # 4. 启动新的配置、进程名为 [program:uwsgi] 中的冒号后面自定义的部分
      start 进程名
      # 5. 查看状态
      status
      
    • 如果你需要读取系统变量的话,那么需要在原有的配置基础上添加 environment

      # 一个变量
      environment=k1=v1
      # 多个变量
      environment=k1=v1,k2=v2
      # 或者
      environment=
          k1=v1
          k2=v2
      
  • 相关阅读:
    git使用
    javascript关于事件与闭包
    Ajax和跨域
    通过触发器进行的操作
    30分钟学会jquery插件
    那些年用过的jquery插件
    网页设计常用网页技巧
    XML操作
    效果A:浏览器跳转以及判断来路客户信息
    数据库
  • 原文地址:https://www.cnblogs.com/wuxiaoshi/p/15069102.html
Copyright © 2011-2022 走看看