同様の質問がすでにありましたが、私のケースは解決しませんでした。
私は次のようなものを持っています:
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 は開始されません。2 つの異なるサーバーで両方を並行して開始するにはどうすればよいですか? 私は試した:
def run_all():
execute(run_task1)
execute(run_task2)
@parallel デコレータが機能しませんでした。こちらのfabric FAQにある提案を試してみました。画面しか利用できないため、2 つの画面セッションを同時に開始する方法がわかりませんでした。バックグラウンドで最初に実行すると、問題が解決するのではないかと思いました。task1 を確実にバックグラウンドにするにはどうすればよいですか? fabric 1.4 と pytho n2.6 を実行中
助けてくれてありがとう。
PS: bkg で両方のタスクを別々に実行するシェル スクリプトを使用して、明らかなハックアラウンドを回避したいと考えています。
#! /bin/bash
fab run_task1 &
fab run_task2 &