Python - 在守护进程中调用multiprocessing.pool

时间:2014-01-07 17:03:59

标签: python multiprocessing daemon

我有一个Python脚本,它产生一个守护进程。在此过程中,我使用multiprocessing.pool同时运行14个进程。

当我在守护进程外部运行它时,它完美地工作(即,当我设置run_from_debugger=True时 - 请参阅下面的代码),但是如果我通过守护进程运行代码,(即{{1} }),run_from_debugger=False永远不会被执行。

是否可以在async_function进程中使用multiprocessing.pool ??? 我使用daemon作为我的守护程序包(如果重要的话)。

代码:

Python-daemon 1.6

非常感谢任何建议。

1 个答案:

答案 0 :(得分:2)

引用multiprocessing的文档:

  

<强>守护程序

     

进程的守护进程标志,一个布尔值。必须在调用start()之前设置它。

     

初始值继承自创建过程。

     

当进程退出时,它会尝试终止所有守护进程子进程。

     

请注意,守护进程不允许创建子进程。否则守护进程会留下其子进程   如果父进程退出时它被终止,则成为孤立的。   另外,这些不是Unix守护进程或服务,它们是正常的   如果非守护进程将终止(并且不加入)的进程   流程已经退出。

由于multiprocessing.Pool必须创建工作进程,因此无法对使用它的进程进行守护进程。