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

我想这就是答案。

后台进程可能仍会阻止调用 shell 退出,直到它们停止运行

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

于 2014-05-06T06:08:02.257 回答
0

你有没有尝试过

运行('nohup myprog >& /dev/null < /dev/null &')

?

&结尾?

于 2013-05-01T22:28:38.990 回答