我已经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)
我设法分两步完成:
以分离模式在远程服务器上启动tmux会话:
run("tmux new -d -s foo")
将命令发送到分离的tmux会话:
run("tmux send -t foo.0 ls ENTER")
这里'-t'确定目标会话('foo'),'foo.0'告诉'ls'命令执行窗格的编号.
您可以将 screen 添加到要运行的命令之前: run("screen long running command")
Fabric 虽然不会像预期那样保持状态,因为每个 run/sudo/etc 都是它们自己的单独命令运行,而不知道最后一个命令的状态。例如 run("cd /var");run("pwd") 将不会打印 /var 而是打印已登录到该盒子的用户的主目录。
| 归档时间: |
|
| 查看次数: |
1830 次 |
| 最近记录: |