据我所知,Python主进程在join()
所有子进程都关闭了。但是,当我在单独的进程中运行由Gunicorn包装的Flask应用程序并按Ctrl-C时,Gunicorn将关闭,但我还必须按Enter才能最终关闭程序并进入控制台。这是代码:
api_server_process = multiprocessing.Process(name='api', target=app_server.run)
api_server_process.start()
app_server
是由Gunicorn包装的Flask应用。
但是,如果我在以上代码的末尾添加api_server_process.join()
。当我按Ctrl-C时,程序会顺利关闭,不需要按Enter。这使我得出一个结论,即Python主进程没有与Gunicorn一起加入子进程。但是为什么它不join()
,却必须这样做。
那我想念什么或我在哪里错了?