主要关闭后,继续运行辅助流程

时间:2017-06-30 00:28:26

标签: python windows multiprocessing

使用multiprocessing库运行第二个进程,如何在关闭初始进程后继续运行该进程?我发誓最初这样做了,我必须启用守护进程选项才能正常关闭,但现在我似乎无法将它们分开。

这里有一些有问题的简单代码。在主窗口上关闭也将关闭第二个进程,但据我所知,只有在守护进程设置为True时才会发生。

from multiprocessing import Process

def background_process():

    #So you can see it eating the cpu
    while True:
        pass

if __name__ == '__main__':

    p = Process(target=background_process)
    p.daemon = False
    p.start()

我的目标是让脚本在所有平台上运行,因为多处理部分是代码的一大块,我宁愿保持它相当普遍。

1 个答案:

答案 0 :(得分:1)

您只需使用os.fork()

即可
from os import fork

child_pid = fork()
if child_pid == 0:
    '''This is the child process, i.e your background process'''
else:
    '''This is the parent process.'''

您可以使用signalspipessockets(Unix套接字)进行通信。

multiprocessing.Process试图让你的生活更轻松,但它很少。我建议你不要使用它。