【发布时间】:2013-11-22 08:59:12
【问题描述】:
我遇到间歇性错误 -
子进程 XXX 仍然没有退出,发送一个 SIGTERM.. 然后是一个 SIGKILL。间歇性出现,网页挂起。
我没有使用守护进程..但现在我使用了,问题仍然存在..
我也有一些错误打开文件读取:权限被拒绝。
有人可以帮忙吗?
我是这个论坛的新手,如果之前已经回答过,很抱歉。
【问题讨论】:
标签: django python-2.7 apache2 mod-wsgi django-wsgi
我遇到间歇性错误 -
子进程 XXX 仍然没有退出,发送一个 SIGTERM.. 然后是一个 SIGKILL。间歇性出现,网页挂起。
我没有使用守护进程..但现在我使用了,问题仍然存在..
我也有一些错误打开文件读取:权限被拒绝。
有人可以帮忙吗?
我是这个论坛的新手,如果之前已经回答过,很抱歉。
【问题讨论】:
标签: django python-2.7 apache2 mod-wsgi django-wsgi
如果您没有使用 mod_wsgi 的守护程序模式,则意味着在显示初始消息时必须重新启动 Apache。
发生的情况是,在尝试重新启动时,Apache 向其子进程发送了一个 SIGTERM。如果他们没有自行退出,它将以 1 秒的间隔再次发送 SIGTERM,最后在 3 秒后发送 SIGKILL。该消息警告您后者并强制终止该进程。
现在的问题是导致进程无法立即关闭的原因。这可能有多种原因。
使用不能在子解释器中正常工作的 Python 扩展模块会导致进程死锁并挂起,从而阻止进程关闭。 http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API
在 Python Web 应用程序中使用未正确设置为守护线程的后台线程,结果它们会阻塞进程关闭。
您的 Web 应用程序只是试图以某种方式在进程关闭方面做太多事情,并且没有在时间限制内完成。
即使使用守护程序模式,您也可能会看到这种行为,因为它实现了类似的关闭超时,尽管超时可针对守护程序模式进行配置。
无论如何,按照上面的文档链接中的说明强制使用主要的 Python 解释器
关于权限问题,请阅读:
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Application_Working_Directory
简而言之,确保您需要访问的文件/目录的访问权限是正确的,并确保您在访问文件系统时始终使用绝对路径名。
【讨论】: