我使用了以下帖子中的 spawn 函数: Indefinite daemonized process spawning in Python
我正在编写一个 cgi 脚本,它接收输入、操作它们,然后输出一个成功页面。其中一个操作函数调用一个需要一点时间才能完成的可执行文件。结果,当个人提交请求时,它会简单地挂在 html 页面上,直到完成。
在我的 def main() 函数中,我执行以下操作:
def main():
<call a bunch of little functions here>
print <All the success information here>
<spawn the daemon process here>
问题在于,使用该命令时,可能由于分叉,它会打印 3 次成功信息。(但可执行文件应该在后台运行)。如果我将守护进程放在 html 打印之前,它会导致它挂起,因为它曾经破坏了生成后台进程的目的。
有没有人有任何想法?
另外,关于分叉的快速理论问题,当调用 fork 时,它是否会重新运行它再次调用的整个函数?因此,如果我生成守护进程,分叉进程会生成 ?