如何使用dtach,屏幕使用面料,是否有一些例子

mao*_*zhi 7 python fabric

我已经google了很多,并在面料faq也说使用屏幕dtach与它,但没有找到如何实现它?吼叫是我的错误代码,sh不会执行,因为它是一个nohup任务

def dispatch():
    run("cd /export/workspace/build/ && if [ -f spider-fetcher.zip ];then mv spider-fetcher.zip spider-fetcher.zip.bak;fi")
    put("/root/build/spider-fetcher.zip","/export/workspace/build/")
    run("cd /export/script/ && sh ./restartCrawl.sh && echo 'finished'")
Run Code Online (Sandbox Code Playgroud)

Dra*_*vic 6

我设法分两步完成:

  1. 以分离模式在远程服务器上启动tmux会话:

    run("tmux new -d -s foo")

  2. 将命令发送到分离的tmux会话:

    run("tmux send -t foo.0 ls ENTER")

这里'-t'确定目标会话('foo'),'foo.0'告诉'ls'命令执行窗格的编号.


Mor*_*gan 2

您可以将 screen 添加到要运行的命令之前: run("screen long running command")

Fabric 虽然不会像预期那样保持状态,因为每个 run/sudo/etc 都是它们自己的单独命令运行,而不知道最后一个命令的状态。例如 run("cd /var");run("pwd") 将不会打印 /var 而是打印已登录到该盒子的用户的主目录。