检测Flask是否通过Gunicorn运行?

18 投票
1 回答
4825 浏览
提问于 2025-04-17 20:54

有没有办法检查我的 Flask 应用是否在 gunicorn 容器中运行?现在我设置了一个环境变量来告诉我的应用,但我希望这个过程能自动化。此外,有没有办法检查正在使用哪个工作类?


我需要检测这个是出于几个不同的原因。请注意,我通常使用 gunicorn,但在测试时有时不会使用。

  1. 日志记录:当在 gunicorn 中运行时,我会连接到 gunicorn 的信息日志,否则我会连接到标准输出日志。
  2. Eventlet/子进程:因为我使用子进程,所以我需要确保在使用 eventlet 时正确地进行猴子补丁,否则它的行为会不正确。(我会调用很多子进程)。

1 个回答

31

虽然我来得有点晚,但我找到了一种很简单的方法,似乎可以解决这个问题:

is_gunicorn = "gunicorn" in os.environ.get("SERVER_SOFTWARE", "")

撰写回答