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

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

И когда я перешел в dir /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:application С service gunicorn start, служба запускается. Но она ведет себя иначе, чем напрямую запущенная в терминале.

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

Математика (от греч. μάθημα máthēma, «знание, изучение, учение»)

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

*

Математика (от греч. ?????? m?th?ma, ?знание, изучение, учение?)

    *

решение1

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

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

Связанный контент