RHEL 9 Gunicorn в проблемах системного обслуживания виртуальной среды Python
Я пытаюсь настроить Gunicorn для обслуживания моего приложения Flask и использовать NGINX для конфигурации прокси. Это приложение размещается на сервере RHEL 9. Установлены Python 3.9 и Gunicorn 20.1.0.
В настоящее время пытаюсь запустить Gunicorn как услугу.
Местоположение службы — /etc/systemd/system/gunicorn.service, а конфигурация следующая:
[Unit]
Description=Gunicorn instance to serve Flask app
After=network.target
[Service]
User=testuser
Group=testuser
WorkingDirectory=/home/testuser/webapp
Environment="PATH=/home/testuser/env/vwebapp/bin"
ExecStart=/home/testuser/env/vwebapp/bin/gunicorn --chdir /home/testuser/webapp --config /home/testuser/webapp/gunicorn.py app:app
[Install]
WantedBy=multi-user.target
Это ошибка, которую я получаю:
Apr 08 01:09:50 TEST gunicorn[265951]: All git commands will error until this is rectified.
Apr 08 01:09:50 TEST gunicorn[265951]: This initial warning can be silenced or aggravated in the future by setting the
Apr 08 01:09:50 TEST gunicorn[265951]: $GIT_PYTHON_REFRESH environment variable. Use one of the following values:
Apr 08 01:09:50 TEST gunicorn[265951]: - quiet|q|silence|s|none|n|0: for no warning or exception
Apr 08 01:09:50 TEST gunicorn[265951]: - warn|w|warning|1: for a printed warning
Apr 08 01:09:50 TEST gunicorn[265951]: - error|e|raise|r|2: for a raised exception
Apr 08 01:09:50 TEST gunicorn[265951]: Example:
Apr 08 01:09:50 TEST gunicorn[265951]: export GIT_PYTHON_REFRESH=quiet
Apr 08 01:09:50 TEST systemd[1]: gunicorn.service: Main process exited, code=exited, status=1/FAILURE
Apr 08 01:09:50 TEST systemd[1]: gunicorn.service: Failed with result 'exit-code'.
Для справки, это файл конфигурации Gunicorn, который я использую для тестирования:
bind = "0.0.0.0:8080"
graceful_timeout = 3000
limit_request_line = 0
loglevel = "debug"
preload_app = True
raw_env = ["TERM=screen"]
timeout = 3000
workers = 5
Заставить работать системный сервис Gunicorn было моей основной задачей на протяжении всего этого процесса. По какой-то причине я могу запустить те же аргументы «--chdir /home/testuser/webapp --config /home/testuser/webapp/gunicorn.py app:app» в ExecStart вручную, и Gunicorn запускается без проблем. Будем очень благодарны любой помощи.
Я попробовал несколько вариантов примеров конфигурации Gunicorn.service (включая исключение аргументов --chdir и --config), но мне так и не удалось заставить этот сервис работать.
В конечном итоге я хотел бы иметь возможность передавать мой файл конфигурации Python Gunicorn в качестве аргумента в разделе ExecStart пользовательской службы Gunicorn.