3

我有一个使用 supervisord 运行的龙卷风网络应用程序。我从 ssh 手动启动、停止和重新启动 Supervisord 服务,它工作正常。我正在使用本地机器上的结构来执行以下操作:

  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 界面或交互式 shell。

如果您想重新启动服务supervisorctl restart <service name>(具有适当的权限,那么可能 usingsudo这样做。如果您更改了服务的配置,请使用supervisorctl update重新启动受影响的进程。这样您就可以使用来自主管的日志文件,以防您的进程无法启动。

于 2013-07-18T19:45:12.863 回答
0

主管在 init.d 脚本中有错误。不要做restart。做stop然后start

于 2013-07-18T19:33:09.837 回答