在Python中,守护进程能创建子进程吗?
我有一个守护进程,它一直在运行,是我用 runit 这个工具创建的。我希望这个守护进程能够监听一个表格,并根据表格中的某一列来执行相应的任务。
EG: table 'A' has column job_type.
我在想,每当这个守护进程收到一个新的任务(也就是表格 A 中插入了一行新数据)时,就从它那里派生出一个子进程来处理这个任务。
但是,multiprocessing 模块说我不能或者不应该从守护进程中派生子进程,因为如果守护进程崩溃了,子进程就会变成孤儿进程。
那么,有什么好的方法可以让守护进程监听表格,根据列的值派生出子进程(这些子进程彼此独立),执行任务后再回到守护进程并结束。
如果子进程需要访问和修改共享数据,我还需要使用一些锁机制来保证安全。
1 个回答
0
我猜想你提到的守护进程是从一个Python脚本中启动的,这个脚本使用了multiprocess,并且设置了daemon=true。
在这种情况下,守护进程的运行意味着创建它的进程还在运行,所以你可以通过管道向它发送消息,让它为你启动一个新进程。如果你的守护进程需要和这个进程交流,可以使用套接字或者你选择的任何进程间通信方法。