织物重新启动我的supervisord服务杀死了服务

时间:2013-07-18 19:14:55

标签: python fabric supervisord

我有一个使用supervisord运行的龙卷风Web应用程序。我从ssh手动启动,停止并重启Supervisord服务,它工作正常。我使用本地机器的布料执行以下操作:

  1. 运行单元测试
  2. 提交/推送到我的git服务器
  3. 从开发服务器提取更改
  4. 重启Supervisord服务以更新应用程序
  5. 运行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应用程序已关闭。关于为什么会发生这种情况的任何想法?

2 个答案:

答案 0 :(得分:4)

Supervisor是一个管理服务的工具,没有必要重新启动它只是为了重新启动它控制的东西。

它附带了一个命令行工具来管理进程supervisorctl。您可以将其用作CLI界面或交互式shell。

如果要重新启动服务supervisorctl restart <service name>(具有适当的权限,那么可能使用sudo执行此操作。如果更改了服务的配置,请使用supervisorctl update重新启动受影响的进程。如果您的进程没有启动,您可以使用来自主管的日志文件。

答案 1 :(得分:0)

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