У меня есть странная проблема, решение которой я не могу найти, просматривая сеть:/
После переключения Apache из mpm-prefork в mpm-worker, использование подпроцесса в моем (Django) приложении Python WSGI вызывает следующее исключение:
IOError at /
[Errno 4] Interrupted system call
Этот вызов:
out = check_output(['sudo', 'quota', user_id])
где check_output является backport этой функции из Python 2.7, в то время как я использую Python 2.6 из репозиториев Debian Squeeze.
Фактически процессы, похоже, исполняются, но умирают:
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 и некоторых директив каталога.
Я пропустил очевидное?
Приветствует Себастьяна
Решение: Оказалось, что ошибка в sudo 1.7.4-4 поставляется с Debian 6. Решено, установив последнюю версию 1.8.x.deb со своей домашней страницы.
В Python 2.7.2 есть ошибка, из-за чего fork в суффиксных интерпретаторах терпит неудачу. Попробуйте установить:
WSGIApplicationGroup %{GLOBAL}
в конфигурации Apache для этого приложения WSGI, чтобы принудительно использовать основной интерпретатор.
Отчет об ошибках Python для основных проблем: