3

已经提出了类似的问题,但没有解决我的问题。

我有类似的东西:

from fabric.api import *
env.rolesdefs = {'server1' : [me@312312], 'server2' : [me@978978]}

@roles('server1')
def run_task1():
    do_stuff_forever

@roles('server2')
def run_task2():
    do_other_stuff_forever        

因为 *_forever 行为,我不能连续运行它们。server2 上的 task2 永远不会启动。如何在两个不同的服务器上同时启动它们?我试过了:

def run_all():
    execute(run_task1)
    execute(run_task2)

@parallel 装饰器不起作用。我尝试了此处给出的建议fabric FAQ。只有屏幕可用,我不知道如何同时启动两个屏幕会话。我想,在后台运行第一个可以解决我的问题吗?如何可靠地将 task1 置于后台?运行 fabric 1.4 和 pytho n2.6

谢谢您的帮助。

PS:我想避免在 bkg 中分别运行两个任务的 shell 脚本进行明显的破解:

#! /bin/bash
fab run_task1 &
fab run_task2 &
4

1 回答 1

-2

如果你设置

env.parallel = True

这有帮助吗?

于 2013-02-15T14:43:32.307 回答