我在这里遇到一个奇怪的问题,我无法通过搜索网络找出解决方案:/
将Apache从mpm-prefork切换到mpm-worker后,在我的(Django)Python WSGI应用程序中使用子进程在挂起几次后引发以下异常:
IOError at /
[Errno 4] Interrupted system call
有问题的电话是:
out = check_output(['sudo', 'quota', user_id])
当我使用Debian Squeeze存储库中的Python 2.6时,check_output是Python 2.7中此函数的后端。
事实上,这些过程似乎已被执行,但却死了:
ps aux | grep quota
root 15378 0.0 0.0 21864 1176 ? S 02:34 0:00 sudo quota ...SOME_ID...
root 15379 0.0 0.0 0 0 ? Z 02:34 0:00 [quota] <defunct>
Apache配置只不过是设置WSGIScriptAlias和一些目录指令。
我错过了明显的吗?
电贺 塞巴斯蒂安
解决方案: 原来是Debian 6附带的sudo 1.7.4-4中的bug。通过从主页安装最新的1.8.x .deb解决。
答案 0 :(得分:0)
Python 2.7.2中有一个错误导致子解释器中的fork失败。尝试设置:
WSGIApplicationGroup %{GLOBAL}
在该WSGI应用程序的Apache配置中,强制使用主解释器。
潜在问题的Python错误报告是: