У меня действительно странная проблема с супервизором и пулеметом. Я читаю супервайзера документация, все соответствующие сообщения в блогах, stackexchange вопросы но ни один из них не решает мою странную проблему, и я даже не знаю, где искать дальше.
Конфигурация моего супервизора:
[program:djangoapp]
user = regularuser
directory = /path/to/djangoapp
command =
/path/to/djangoapp/.venv/bin/gunicorn
--debug
--log-file -
--log-level debug
--name arlista
--workers 9
--pythonpath /path/to/necessary/library/source/Python
djangoapp.wsgi:application
stdout_logfile = /path/to/logfolder/djangoapp.log
autorestart = true
redirect_stderr = true
environment =
GPG_PASSPHRASE="a_passhprase_with_a_comma_in_it",
DJANGO_SETTINGS_MODULE="myapp.settings.production",
DJANGO_SECRET_KEY="secret_key_working_fine",
DJANGO_DB_ENGINE="django.db.backends.mysql",
DJANGO_DB_HOST="localhost",
DJANGO_DB_NAME="dbname",
DJANGO_DB_USER="dbuser",
DJANGO_DB_PASSWORD="dbpassword",
DJANGO_MEDIA_ROOT="/path/to/djangoapp/media",
DJANGO_STATIC_ROOT="/path/to/djangoapp/static_root",
# a couple more environment variables here for Django
Вроде все нормально работает. Он может подключаться к базе данных, я вижу djangoapp.log
, то myapp.settings.production
pyc файла создается, поэтому настройки загружаются. DJANGO_MEDIA_ROOT
работает нормально, потому что изображения подаются из этой папки (и если я удалю этот параметр, Django даже не запустится).
ТЕМ НЕ МЕНИЕ есть страницы, когда зашифрованные изображения расшифровываются на лету (вот почему необходим GPG_PASSHPRASE), и они дают мне пустые изображения (изображения с нулевой длиной, поэтому Django работает, а расшифровка - нет). Расшифровка производится /usr/bin/gpg
. Функция, которая обрабатывает дешифрование, находится в пакете в /path/to/necessary/library/source/Python
. regularuser
может читать пакеты из этой папки.
Если я запускаю процесс с выскочкой, передавая те же переменные среды с env
строфы или даже чтение их из файла, все нормально, картинки расшифровывались, но не с супервайзером.
Я пробовал переменные среды с одинарной кавычкой, без кавычек, пройти PYTHONPATH
стрелять --pythonpath
или вариант среды, и все равно не повезло. Что я могу сделать? Может проблема в том, что GPG_PASSHPRASE содержит запятую? (Я не могу это изменить.) Что еще? У меня действительно заканчиваются идеи.
Я, наверное, ничем не могу помочь, но я выброшу некоторые возможности (которые могут быть совершенно неправильными)
djangoapp...
"). Возможно, какой-то шаг в вашей цепочке сборки объединяет это с предыдущим --pythonpath
флаг, и оба игнорируются.