我遇到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.
答案 0 :(得分:1)
请考虑使用sudo()
和cd()
上下文管理器。类似的东西:
@task
def deploy():
with cd('/home/user/project'):
sudo('your-command', user=user)