【问题标题】:Fabric run() method handle only twiceFabric run() 方法只处理两次
【发布时间】:2017-03-27 08:10:10
【问题描述】:

我遇到了 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.

【问题讨论】:

    标签: python fabric


    【解决方案1】:

    考虑改用sudo()cd() 上下文管理器。比如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      相关资源
      最近更新 更多