如何使用fabric以root身份执行命令

时间:2016-12-21 15:49:05

标签: python fabric

我正在尝试使用Fabric在远程服务器中执行一些基本命令。我之前没有使用过Fabric,在执行某些命令时遇到了一些困难。

我需要做的是连接到远程服务器,在特定目录中创建一个文件,然后重新启动uwsgi服务器。

虽然我能够执行前两个任务,但我无法重新启动服务,因为我没有以root用户身份ssh到服务器。

这就是我的所作所为:

def staging():
   env.hosts = ['user@my_host']

def update_app(app_name):
  with cd(git_folder):
    with settings(warn_only=True):
      sudo('mkdir -p /home/new_folder/test')
      #sudo('sudo su -') # also tried this
      sudo('service uwsgi restart')

当我包含 sudo su - 命令时,fab脚本永远不会完成。我只是以root身份登录(在终端中)。

1 个答案:

答案 0 :(得分:1)

为什么不只是sudo service uwsgi restart?如果sudoconfigured to allow that而没有提示输入密码,则应该可以正常工作。