使用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()
我的目标是脚本在所有平台上运行,因此,由于多处理部分是代码的很大一部分,因此我希望保持它相当通用。
您可以简单地使用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.'''
您可以使用信号,管道和插座(UNIX插座(进行通信。
多处理。过程试图使您的生活更轻松,但很少会。我建议您完全不要使用它。