导入 setproctitle 模块时,Django WSGI 出现段错误

导入 setproctitle 模块时,Django WSGI 出现段错误

我想使用python 设置proctitle模块用于在 python WSGI 工作进程开始处理请求时更新其进程名称。(这是为了尝试追踪哪些 URL 使用了所有 CPU)。我编写了一个简单的 Django 中间件类,它将调用setproctitle.setproctitle(request.path)。这在 django 调试服务器(即python manage.py runserver)中运行良好,即我可以在 的输出中看到请求 URL top

但是,当我尝试使用 apache 和 mod_wsgi 运行相同的代码时,wsgi 进程在加载中间件 python 文件时发生段错误。它在该行发生import setproctitle段错误。(该行之前的打印语句被执行,但之后的打印语句不执行)。

是否可以让 setproctitle 与 wsgi 一起工作?

服务器是Ubuntu Linux,使用apache,mod_wsgi和django。

答案1

使用 gdb 找出崩溃的原因。请参阅:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Debugging_Crashes_With_GDB

如果这不能帮助您自己解决问题,那么建议您将所有详细信息发布到 mod_wsgi 邮件列表,因为当需要迭代调试问题时,该站点无法很好地工作。

还可以尝试强制使用主 Python 解释器:

WSGIApplicationGroup %{GLOBAL}

可能是 setproctitle 模块在子解释器中无法正常工作,尽管我不明白为什么它不能正常工作,因为它应该只是一个函数的包装器并且应该非常简单。

相关内容