python守护进程和多处理库之间的区别

python守护进程和多处理库之间的区别,python,django,multiprocessing,daemon,xmlrpclib,Python,Django,Multiprocessing,Daemon,Xmlrpclib,我需要从运行xmlrpc服务器的PythonDjango模块运行守护进程。主进程将承载一个xmlrpc客户端。对于在python中创建、启动、停止和终止守护进程,我有点困惑。我已经看到了两个库,标准的python多处理和另一个python守护进程(),但不太了解在我的例子中哪一个是有效的。另外,何时以及如何为我的守护进程处理SIGTERM?有人能帮我理解这些吗?多处理模块是作为线程模块的替代品设计的。它被设计成用于通常使用线程的相同类型的任务;通过对多个内核、后台轮询和任何其他要与其他任务同时运

我需要从运行xmlrpc服务器的PythonDjango模块运行守护进程。主进程将承载一个xmlrpc客户端。对于在python中创建、启动、停止和终止守护进程,我有点困惑。我已经看到了两个库,标准的python多处理和另一个python守护进程(),但不太了解在我的例子中哪一个是有效的。另外,何时以及如何为我的守护进程处理SIGTERM?有人能帮我理解这些吗?

多处理模块是作为线程模块的替代品设计的。它被设计成用于通常使用线程的相同类型的任务;通过对多个内核、后台轮询和任何其他要与其他任务同时运行的任务运行来加快执行速度。它不是为启动独立的守护进程而设计的,所以我认为它不适合您的用例

python守护进程
库设计用于“守护”当前运行的python进程。我认为您需要使用主进程(xmlrpc客户端)中的库来启动守护进程(xmlrpc服务器),使用。然后,在守护进程内部,您可以使用
python守护进程
库成为守护进程

所以在主要的过程中,像这样:

subprocess.Popen([my_daemon.py, "-o", "some_option"])
my_daemon.py
中:

import daemon
...
def main():
   # Do normal startup stuff

if __name__ == "__main__":
    with daemon.DaemonContext(): # This makes the process a daemon
        main()

谢谢,但我试了不同的方法。我从主程序中派生了一个子程序,并在子程序中创建了一个xmlrpc服务器,在主进程中创建了xmlrpcclient,如下所示
https://docs.python.org/2/library/xmlrpclib.html
在第20.23.2节中,但服务器公开的远程功能写在我导入的另一个文件中。作为一个独立的程序,这个设置工作得很好,当我在django中做同样的事情时,它会导致管道破裂(错误32)。你能告诉我django有什么问题吗?