我有一个Python
脚本,它产生一个守护进程。在此过程中,我使用multiprocessing.pool
同时运行1
到4
个进程。
当我在守护进程外部运行它时,它完美地工作(即,当我设置run_from_debugger=True
时 - 请参阅下面的代码),但是如果我通过守护进程运行代码,(即{{1} }),run_from_debugger=False
永远不会被执行。
是否可以在async_function
进程中使用multiprocessing.pool
???
我使用daemon
作为我的守护程序包(如果重要的话)。
代码:
Python-daemon 1.6
非常感谢任何建议。
答案 0 :(得分:2)
引用multiprocessing
的文档:
<强>守护程序强>
进程的守护进程标志,一个布尔值。必须在调用start()之前设置它。
初始值继承自创建过程。
当进程退出时,它会尝试终止所有守护进程子进程。
请注意,守护进程不允许创建子进程。否则守护进程会留下其子进程 如果父进程退出时它被终止,则成为孤立的。 另外,这些不是Unix守护进程或服务,它们是正常的 如果非守护进程将终止(并且不加入)的进程 流程已经退出。
由于multiprocessing.Pool
必须创建工作进程,因此无法对使用它的进程进行守护进程。