Fabric run()方法只处理两次

时间:2017-03-27 08:10:11

标签: python fabric

我遇到Fabric的问题,它不允许我执行两个运行命令。

我有Fabric的任务

@task
def deploy():
    run("su - user")
    run("cd /home/user/project")

当我运行一个带有fab deploy脚本的函数连接到服务器并仅运行第一行

[34.252.47.139] run: su - user
[34.252.47.139] out: user@user.com [~]# 

在此步骤中,我使用Ctrl+D键终止控制台,之后我看到第二行代码执行。

所以控制台的总输出是:

[34.252.47.139] run: su - user
[34.252.47.139] out: user@user.com [~]# logout (Here I terminate a console)
[34.252.47.139] out: 

[34.252.47.139] run: cd /home/user/project

Done.
Disconnecting from 34.***.***.***... done.

1 个答案:

答案 0 :(得分:1)

请考虑使用sudo()cd()上下文管理器。类似的东西:

@task
def deploy():
    with cd('/home/user/project'):
        sudo('your-command', user=user)