2016-09-02 8 views
1

私は、仮想ボックスの下で迷惑な環境として実行しているUbuntu 14.04.4 LTSを持っています。 virtualenvironmentスーパバイザ管理の下でセロリの花が動作しません

  • セロリ3.1.23

  • 花0.9.1

    • スーパーバイザ3.0b2

    • のpython 3.4:このボックスでは、私は、この構成を持っています

      superviの下の花の構成あなたは:

      [program:flower] 
      command=/home/vagrant/.virtualenvs/meridian/bin/python /vagrant/meridian/meridian/manage.py celery flower --loglevel=INFO -conf=/vagrant/meridian/meridian/meridian/flowerconfig.py 
      directory=/vagrant/meridian/meridian 
      user=vagrant 
      autostart=true 
      autorestart=true 
      stdout_logfile=/var/log/supervisor/flower-stdout.log 
      stderr_logfile=/var/log/supervisor/flower-stderr.log 
      priority=997 
      stdout_logfile_maxbytes=10MB 
      stdout_logfile_backups=5 
      stderr_logfile_maxbytes=10MB 
      stderr_logfile_backups=5 
      

      flowerconfig.pyは空のファイルです。したがって、すべての値はデフォルトです。それは、私はタスクが発生見るべきであるとして、それが実行される

      放浪する@ localhostの>花

      :ホストは、私は、コマンドラインから花を実行すると5555

      ではlocalhostとポートです私のブラウザでは、アドレスlocalhost:5555にアクセスしてください。

      netstatコマンドは私に耳を傾けているポートを示しています。

      放浪を@ localhostの>は、netstat -l | grepの5555

      tcp  0  0 *:5555     *:*      LISTEN 
      tcp6  0  0 [::]:5555    [::]:*     LISTEN 
      

      だから、それはOKです。

      私はこのように監督の下でflowe実行します。

      放浪する@ localhostの> sudoは、それが必要として始まり、花

      開始supervisorctl。 Netstatは、ポート5555がリッスンされていることを示しています。しかし、ブラウザからのクエリはちょうどハングアップします。

      なぜ花が上司のもとで返信しないのですか?

    +1

    いけないランの花、正確uはsupervisorctlに提供しているコマンドのようにそれを実行します。 /home/vagrant/.virtualenvs/meridian/bin/python /vagrant/meridian/meridian/manage.pyセロリフラワー--loglevel = INFO -conf =/vagrant/meridian/meridian/meridian/flowerconfig.py/vagrant /経絡/子午線 – lapinkoira

    +0

    @ lapinkoira私はこのアプローチを試して、それは動作しません。しかし、このシーケンスと同じではないので、スーパーバイザ設定からコマンドを発行しても問題がないことが分かりました。 1)workon meridian 2)flower - ...仮想環境が有効になります) ここで、1つのスーパーバイザ設定セクションで2つのコマンドを実行する方法を理解する必要があります。 –

    +1

    あなたはvirtualenvの中であなたのpython binを使用している場合は、workonは必要ありません – lapinkoira

    答えて

    1

    私は解決策を見つけました。 問題は、私の仮想環境ではなく花を走らせることでした。私はシェルファイル "start_flower.sh"を追加しました:

    source /usr/share/virtualenvwrapper/virtualenvwrapper.sh 
    source /home/vagrant/.virtualenvs/meridian/bin/activate 
    workon meridian 
    exec flower --conf=/vagrant/meridian/meridian/meridian/flowerconfig.py 
    

    それはすべきです。

    は、その後、私は、このように花のためのスーパーバイザーの設定を書き換え中:

    [program:flower] 
    command=bash -c "/vagrant/meridian/meridian/start_flower.sh" 
    directory=/vagrant/meridian/meridian 
    user=vagrant 
    autostart=true 
    autorestart=true 
    stdout_logfile=/var/log/supervisor/flower-stdout.log 
    stderr_logfile=/var/log/supervisor/flower-stderr.log 
    priority=997 
    stdout_logfile_maxbytes=10MB 
    stdout_logfile_backups=5 
    stderr_logfile_maxbytes=10MB 
    stderr_logfile_backups=5 
    stopasgroup=true 
    killasgroup=true 
    

    と今ではすべてが良いです。

    注:私は「実行」でシェルファイルに花を実行していることにご注意を喚起したい:

    exec flower --conf=/vagrant/meridian/meridian/meridian/flowerconfig.py 
    

    私はその建設を使用する場合ので、私はそこにこれを使用する:

    flower --conf=/vagrant/meridian/meridian/meridian/flowerconfig.py 
    
    プロセスはとにかく働いていた

    sudo supervisorctl stop flower 
    

    しかし花: - 私はproblewを持っていた

    シェルファイルプロセスがで終了しました!

    このような問題に直面する場合は、常に「exec」を使用してください。 これは、このような場合のために良いの追加情報です:浮浪者ユーザーとして

    http://veithen.github.io/2014/11/16/sigterm-propagation.html

    関連する問題