• Supervisor安装与配置问题一站式解决


     

    一,安装问题及解决

      我这里习惯使用  easy_install supervisor 方式安装,以下的问题围绕这种安装方式。

      问题1, ImportError: No module named pkg_resources解决方案 

        这个问题通常是由于升级到python2.7后执行pip产生的解决方案是重新在python2.7环境中安装pip

      1.安装distribute

        wget https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip --no-check-certificate

        unzip distribute-0.7.3.zip

        cd distribute-0.7.3

        python setup.py install

      

      2.安装setuptool
         去这个地址 https://pypi.python.org/pypi/setuptools 下载最新版

         下载解压 并且python setup.py install

     

      3.安装pip

        easy_install pip

      

      4.安装pip的时候如果报错  ImportError: No module named extern异常 

        解决:在https://pypi.python.org/pypi/extern 下载最新extern安装后再次安装步骤pip.

    二, 配置使用问题及解决

      1,生成配置文件 echo_supervisord_conf > /etc/supervisor/supervisord.conf  “这个路劲自己安排”

      2,修改配置文件 主要是下面几点

        (1)这个一般默认不用修改

            [unix_http_server]

            file=/tmp/supervisor.sock ; the path to the socket file    

          chmod=0700 ; socket file mode (default 0700)

        (2)这个一般默认不用修改

               [supervisord]
               logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log
               logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB
          logfile_backups=10 ; # of main logfile backups; 0 means none, default 10
          loglevel=info ; log level; default info; others: debug,warn,trace
          pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid
          nodaemon=false ; start in foreground if true; default false
          minfds=1024 ; min. avail startup file descriptors; default 1024
          minprocs=200 ; min. avail process descriptors;default 200

         (3)   自定义配置文件的落脚点

          [include]     //一定要注意前面的分号 一点要去掉 不然这个模块没法加载  

          files = /etc/supervisor/conf.d/*.conf  //配置文件路径 相对、绝对路径都可以

       3,问题 Unlinking stale socket /XXXXX/XXXX/supervisor.sock   

           解决:unlink /XXXX/XXXXX/supervisor.sock 

       4,启动或者其他情况下出现  ImportError: cannot import name process_or_group_name 请见上面安装哪里

       5,出现  unix:///var/run/supervisor.sock no such file  可能是supervisor服务没有启动 

          解决:service  supervisor  start

       6,出现  error: <class ‘socket.error’>, [Errno 2] No such file or directory: file:/usr/lib/python2.7/socket.py line: 224   

          可能是supervisor服务没有启动  解决:service  supervisor  start

    三,配置文件详解 

        [program:queue_worker]    ;项目名称
        directory = /www/tp5   ; 程序的启动目录
        command = php think queue:work --queue addData --daemon   ; 启动命令
        process_name=%(program_name)s_%(process_num)02d
        numprocs = 3   ; 开启的进程数量
        autostart = true    ; 在 supervisord 启动的时候也自动启动
        startsecs = 5   ; 启动 5 秒后没有异常退出,就当作已经正常启动了
        autorestart = true    ; 程序异常退出后自动重启
        startretries = 3   ; 启动失败自动重试次数,默认是 3
        user = www   ; 用哪个用户启动
        redirect_stderr = true   ; 把 stderr 重定向到 stdout,默认 false
        stdout_logfile_maxbytes = 50MB    ; stdout 日志文件大小,默认 50MB
        stdout_logfile_backups = 20   ; stdout 日志文件备份数、

        loglevel = info   ;记录等级 有critical, error, warn, info, debug, trace, or blather等

        ; stdout 日志文件,需要手动创建目录(supervisord 会自动创建日志文件)

        stdout_logfile = /www/supervisor/log/queue_worker.log

     四,其他注意

      1,修改了Supervisor 的配置信息后,必须执行下面命令

         sudo supervisorctl reload

         sudo supervisorctl update

      2,个人猜想

        在ubuntu和centos中开启一个项目 直接是  supervisorctl start name, 但是在Redhat中需要  supervisorctl start name:*  这是我遇到的问题。

    ***转载请务必注明来源 谢谢

  • 相关阅读:
    JSON就是名值对 name/value pair
    AjaxXMLHttpRequest
    英语单词分类记
    委托和事件的理解
    用float设置主页的左右两边菜单
    OCS通讯路径
    测试用Word写Blog
    第一课 C#入门
    nginx虚拟目录设置 alias 和 root
    vsftp 出错,无法创建文件的解决方法
  • 原文地址:https://www.cnblogs.com/onlyzc/p/10033832.html
Copyright © 2020-2023  润新知