【发布时间】:2012-11-01 16:37:12
【问题描述】:
如何正确派生一个不使用任何来自 twisted 的子进程(但使用来自父进程的数据)(例如,处理来自父进程的某些数据的“快照”并将其写入文件,无需阻塞)?
似乎如果我在os.fork() 之后在子进程中执行干净关闭之类的操作,它会关闭父进程中的一些套接字/描述符;避免这种情况的唯一方法是使用os.kill(os.getpid(), signal.SIGKILL),这似乎是个坏主意(尽管没有直接问题)。
(另外,如果一个dict在父进程中发生了变化,它会不会在子进程中也发生变化?快速测试表明它不会改变,但操作系统/内核是debian stable / sid)
【问题讨论】:
-
(我有点怀疑
os.exec*中的一个类似无操作外壳的东西会解决这个问题) -
您能否详细说明“使用来自父进程的数据”的含义?您要使用的数据的具体细节可能会对这个问题的最佳答案产生重大影响。