Gunicorn ведут себя по-разному при запуске из терминала и службы

Я использую nginx+gunicorn+django для своего сайта.

Вот мой файл gunicorn.conf:

description "Gunicorn daemon for Django project"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

# If the process quits unexpectadly trigger a respawn
respawn

setuid django
setgid django
chdir /home/django

# export LC_ALL=en_US.UTF-8
# export LC_LANG=en_US.UTF-8
# export LANG=en_US.UTF-8

exec gunicorn \
    --name=eduwiki \
    --pythonpath=eduwiki \
    --bind=0.0.0.0:9000 \
    --log-level debug \
    --log-file /var/log/gunicorn/error_logs.log \
    --config /etc/gunicorn.d/gunicorn.py \
    eduwiki.wsgi:application

#    --access-logfile  /var/log/gunicorn/acclogs.log \

Когда я бегу

service gunicorn start

И когда я перехожу в реж /home/djangoследующая команда (которая совпадает с кодами в предыдущем файле конфигурации) работает как шарм:

exec gunicorn     --name=eduwiki     --pythonpath=eduwiki     --bind=0.0.0.0:9000     --log-level debug     --log-file /var/log/gunicorn/error_logs.log     --config /etc/gunicorn.d/gunicorn.py     eduwiki.wsgi:application

Но первый не может быть запущен, когда я удаляю часть регистрации в файле конфигурации: exec gunicorn \ --name=eduwiki \ --pythonpath=eduwiki \ --bind=0.0.0.0:9000 \ --config /etc/gunicorn.d/gunicorn.py \ eduwiki.wsgi: приложение сservice gunicorn startСлужба работает. Но он ведет себя иначе, чем прямой запуск в терминале.

При запуске непосредственно из терминала правильная кодировка символов, отображаемая на веб-странице, например:

Математика (от греческого языка μ knowledgeθημα máthēma, "знания, учеба, обучение")

Но когда я запускаю gunicorn с помощью сервиса, кодировка не-ascii символа совершенно неверна:

*

Математика (от греческого?????? m? Th? Ma, "знания, учеба, обучение")

    *

1 ответ

Решение

Ваши сеансы интерактивного терминала обычно автоматически заполняются локалью LC_ALL и языковые настройки LC_LANG а также LANG и многие клиенты SSH переопределяют настройки сервера по умолчанию, перенаправляя эти переменные среды с вашей рабочей станции.

Часто они отличаются от системных значений по умолчанию, которые используются, когда демон запускается как служба из сценариев запуска. Раскомментируйте # export строк в сценарии запуска и заполнить среду подходящими настройками.

Другие вопросы по тегам