Fabric不能远程启动Nginx

我希望能够使用Fabric在Ubuntu EC2实例上启动和停止nginx服务器。

我在我的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编译时使用的path。

有没有人有任何想法为什么初始化脚本行为不同从织物调用?

我发现,如果我在远程使用伪terminal,它的工作原理! 这是正确的脚本:

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