织物拨叉

| 我想使用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)
问题是我执行运行命令后,我摔进了远程框中,发现程序由于某种未知原因已退出,我检查了日志文件,那里什么也没有。 有人可以让我知道如何解决这个问题?非常感谢!!     
已邀请:
说到fork,除了许多其他改进之外,还有一个Fabric的fork可以并行执行。 http://tav.espians.com/fabric-python-with-cleaner-api-and-parallel-deployment-support.html 根据您在做什么,您可能需要考虑这一点。 除此之外,我认为您想使用
multiprocessing
from multiprocessing import Process

def f(name):
    print \'hello\', name

if __name__ == \'__main__\':
    p = Process(target=f, args=(\'bob\',))
    p.start()
    #p.join()
http://docs.python.org/library/multiprocessing.html     

要回复问题请先登录注册