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)