Fabric 无法远程启动 Nginx

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 编译时使用的路径。

有谁知道为什么从 Fabric 调用时初始化脚本的行为会有所不同?

答案1

我发现如果我在远程使用伪终端,它就可以工作!这是正确的脚本:

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

相关内容