uWSGI在退出时运行

时间:2014-02-03 19:28:52

标签: signals uwsgi

我正在通过uWSGI运行Flask应用。我有一些清理代码,我需要在我的应用程序退出时运行(关闭一些外部进程)。我为SIGTERMSIGINT安装了信号处理程序,以使用python signal模块运行脚本。当我使用python运行应用并点击Ctrl+C时,这些工作正常。但是,无论出于何种原因,当我执行/etc/init.d/uwsgi-emperor stop时,这些都不会运行,因此它们必须被uWSGI代码绕过。什么是在退出时运行函数的最佳方法?

1 个答案:

答案 0 :(得分:0)

不要覆盖uWSGI worker中的UNIX信号,它是无限问题流的路径。正如已经建议的那样使用python atexit模块,uwsgi.atexit python钩子,或者更通用的uwsgi钩子(你从选项定义的那些,比如--exec-as-user-atexit)