Fabric не запускает Nginx удаленно

Я хочу иметь возможность запускать и останавливать сервер nginx на экземпляре Ubuntu EC2 с Fabric.

У меня есть два скрипта в моем файле 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')

Start_nginx(), по-видимому, работает без ошибок (* Запуск Nginx Server.../ ...done.), Но не запускает сервер (или он сразу же умирает).

Если я вставлю SSH в экземпляр, это отлично запустит nginx:

sudo /etc/init.d/nginx start 

Сценарий stop_nginx() Fabric останавливает сервер удаленно.

Я скомпилировал nginx из исходного кода, используя этот http://nginx.org/download/nginx-1.1.9.tar.gz и используя этот скрипт в /etc/init.d: https://github.com/JasonGiedymin/nginx-init-ubuntu/blob/master/nginx. Единственное, что я изменил, это строка:

DAEMON=/usr/local/sbin/nginx   

в

DAEMON=/usr/sbin/nginx

потому что это путь, который я использовал, когда я./configure-d моей компиляции.

У кого-нибудь есть идеи, почему скрипт init ведет себя по-другому, вызываясь из Fabric?

1 ответ

Я обнаружил, что если я использую псевдо-терминал на пульте, это работает! Это правильный сценарий:

def start_nginx():
    sudo('/etc/init.d/nginx start', pty=False)
Другие вопросы по тегам