2

Python で fabric を使用してプログラムをリモートで実行したい

マシン A でプログラムを実行した場合:

with (settings(host_string = machine_B_ip, user = 'ubuntu', key_filename = 'somepemfile.pem')):
    run('myprog')

正常に動作しますが、マシン A がマシン B から切断すると、プロセスは B で停止します。「nohup」を使用してこれを解決します

ただし、本当の問題は、マシン A がマシン B を待機してスタックすることです。

しようとしている:

run('myprog &')

プログラムはリモートで実行されません ( http://docs.fabfile.org/en/1.3.4/faq.html#why-can-ti-run-programs-in-the-backgroundで明らかなように) -with-it-makes-fabric-hang )

しようとしている:

run('myprog >& /dev/null < /dev/null &') # fails
run('myprog >& /dev/null < /dev/null') 
run('nohup myprog >& /dev/null < /dev/null')  # gets stuck

助けにならない。

どうすればこれを達成できますか?

4

2 に答える 2

0

これが答えだと思います。

バックグラウンド化されたプロセスは、実行を停止するまで呼び出し元のシェルを終了できない場合があります

https://fabric.readthedocs.org/en/1.5/faq.html

于 2014-05-06T06:08:02.257 に答える