2
我想使用Fabric.api.run直接在远程盒子中启动应用程序。由于应用程序需要很长时间才能完成,因此我希望能够分叉子进程,这样我就不需要等很长时间了。织物分叉
该代码是这样的:
from fabric.api import run
....
run("python ./myApp.py --fork=True >myApp.log 2>&1")
我用下面的代码,以使分叉端的代码:
if settings.fork:
child_pid = os.fork()
if child_pid == 0:
print "Starting Child Process: PID# %s" % os.getpid()
else:
print "Terminating Parent Process: PID# %s" % os.getpid()
os._exit(0)
问题是我做运行命令后,我sshed到远程盒子里,发现程序已经退出,原因不明,我查了一下日志文件,里面什么都没有。
有人可以让我知道我可以如何工作?非常感谢!!
还有这个叉:https://github.com/goosemo/fabric – zeekay 2011-05-07 18:32:54
面料肯定需要某种形式的并行执行。 – zeekay 2011-05-07 18:33:58
并行部署/执行是真棒,我可以肯定会尝试。但我的问题是,当我需要使用“运行”在远程框中运行程序时,我想知道如何使程序连续运行,即使结构的运行命令已返回(我的例子是在程序内部执行os.fork() fork一个子进程,并将所有输出/错误重定向到一个日志文件。) – Sheng 2011-05-09 13:46:03