запуск подпроцесса.Popen под apache + mod wsgi всегда возвращает ошибку с кодом возврата -6
Я надеюсь, что кто-то видел это -
Я запускаю django-compressor, используя настройку lessc для рендеринга / сжатия меньше в CSS в файле. Он отлично работает при вызове с сервера разработки, но при запуске под apache+mod_wsgi он последовательно возвращает ошибку.
чтобы отладить это, я выполнил точную команду, которую фильтр вызывает как пользователь www-data (который определен как пользователь wsgi в WSGIDaemonProcess директива) и проверил, что он работает правильно, включая разрешения на чтение и запись файлов, которыми он управляет.
Я также взломал код django-compressor в compressor/filters/base.py в этой системе, и кажется, что любая команда, пытающаяся получить вызов, получает код возврата -6 после proc.communicate () invocation.
Я надеюсь, что кто-то видел это раньше - или что это звонит какая-то искорка. Он работает отлично на этой машине вне apache + mod_wsgi процесс (т. е. запуск процесса в качестве dev-сервера), а также. Я просто не понимаю, что может блокировать подпроцесс.Popen () invocations.
1 ответов
вы случайно используете Python 2.7.2?
эта версия Python представила ошибку, которая вызывает сбой fork () в sub интерпретаторах:
http://bugs.python.org/issue13156
вам придется заставить приложение WSGI работать в основном интерпретаторе Python процесса, установив:
WSGIApplicationGroup %{GLOBAL}
при запуске нескольких приложений Django необходимо убедиться, что только один затронутый имеет эту директиву конфигурации применяется к нему иначе вы заставите все приложения Django работать в одном интерпретаторе, что невозможно из-за того, как работает конфигурация Django.