1. 程式人生 > >Supervisor安裝與配置問題一站式解決

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:*  這是我遇到的問題。

 

***轉載請務必註明來源 謝謝