O Fabric não inicia o Nginx remotamente

2

Eu quero poder iniciar e parar um servidor nginx em uma instância do Ubuntu EC2 com o Fabric.

Eu tenho estes dois scripts no meu fabfile.py:

def start_nginx():
    sudo('/etc/init.d/nginx start')
    #also tried this: run('sudo /etc/init.d/nginx start')

def stop_nginx():
    sudo('/etc/init.d/nginx stop')

O start_nginx () aparentemente é executado sem erros (* Iniciando o Servidor Nginx ... / ... concluído), mas não inicia o servidor (ou morre imediatamente).

Se eu SSH na instância, isso inicia o nginx perfeitamente:

sudo /etc/init.d/nginx start 

O script stop_nginx () Fabric pára o servidor remotamente.

Eu compilei o nginx a partir do código-fonte, usando este link e usando este script em / etc / init.d: link . A única coisa que eu modifiquei é essa linha:

DAEMON=/usr/local/sbin/nginx   

para

DAEMON=/usr/sbin/nginx

porque esse é o caminho que usei quando eu ./configure-d minha compilação.

Alguém tem alguma idéia por que o script de inicialização se comporta de forma diferente a partir do Fabric?

    
por endofu 23.03.2012 / 19:54

1 resposta

4

Descobri que, se eu usar um pseudo-terminal no controle remoto, funciona! Este é o script correto:

def start_nginx():
    sudo('/etc/init.d/nginx start', pty=False)
    
por 24.03.2012 / 11:01