3

Supervisord を使用してトルネード Web アプリケーションを実行しています。Supervisord サービスを ssh から手動で開始、停止、再起動すると、正常に動作します。ローカル マシンのファブリックを使用して、次のことを行っています。

  1. 単体テストを実行する
  2. 私のgitサーバーにコミット/プッシュする
  3. 開発サーバーから変更をプルする
  4. Supervisord サービスを再起動して、アプリケーションを更新します

fabfile を実行してもエラーは発生しませんが、実行後にサーバーがダウンします。以下は私のfabfileコードです:

from fabric.api import *
from fabric.context_managers import settings

def prepare_deploy():
    local('py.test')
    local('git add .')
    x = raw_input('what would you like your commit message to be?   ')
    local('git diff --quiet --exit-code --cached || git commit -m "' + x + '"')
    local('git push origin master')

def dev():
    prepare_deploy()
    x = raw_input('Please enter the location of your keyFile for the dev server ')
    if x == '':
        key = 'key_file'
    else:
        key = x
    with settings(
            host_string='dev_server_name',
            user='user_name',
            Key_filename=key,
            use_ssh_config = True):
        code_dir='~/path/to/code/'
        with cd(code_dir):
            run("git pull origin master")
            run("sudo python setup.py install")
            run("sudo service supervisord restart")

これが完了すると、私の Web アプリケーションはダウンします。なぜこれが起こっているのかについてのアイデアはありますか?

4

2 に答える 2

4

Supervisor はサービスを管理するためのツールであり、その制御下にある何かを再起動するためだけに再起動する必要はありません。

プロセスを管理するためのコマンド ライン ツール、 Supervisorctl が付属しています。CLI インターフェイスまたは対話型シェルとして使用できます。

サービスを再起動したい場合supervisorctl restart <service name>(適切な権限があるので、おそらく使用sudoします。サービスの構成を変更した場合は、supervisorctl update影響を受けるプロセスを再起動するために使用します。このようにして、プロセスが開始しない場合にスーパーバイザーからログファイルを使用できます。

于 2013-07-18T19:45:12.863 に答える
0

Supervisor の init.d スクリプトにバグがあります。しないでくださいrestart。しstopてからstart.

于 2013-07-18T19:33:09.837 に答える