Назад | Перейти на главную страницу

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 ... / ... выполнено.), Но не запускает сервер (или сразу умирает).

Если я подключусь к экземпляру по 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 свою компиляцию.

Кто-нибудь знает, почему сценарий инициализации ведет себя по-другому при вызове из Fabric?

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

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