서비스가 중지되면 virtualenv에서 Django UWSGI를 사용하여 Systemd가 SIGTERM에 응답하지 않습니다.

서비스가 중지되면 virtualenv에서 Django UWSGI를 사용하여 Systemd가 SIGTERM에 응답하지 않습니다.

systemd를 사용하는 가상 환경에서 uWSGI로 실행되는 Django 애플리케이션이 있습니다. 설명서에 따라 "일반적인" 방법을 사용하여 설정했지만 서비스를 중지하거나 다시 시작할 때 SIGTERM 명령으로 인해 응용 프로그램이 중지되지 않는 것 같습니다. Amazon Linux 2023에서 실행 중이며 특정 방식으로 실행/중지/다시 시작하기 위해 앱에 아무것도 추가하지 않았습니다. 이는 일반적인 Django 앱입니다.

Journalctl에 다음 오류가 표시됩니다. State 'stop-sigterm' timed out. Killing.

내 서비스 파일:

[Unit]
Description=Application uwsgi service
After=network.target syslog.target

[Service]
User=nginx
Group=nginx
ExecStart=/bin/bash -c 'source /opt/env-application/bin/activate; uwsgi --ini /opt/application/uwsgi.ini'
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

내 uwsgi.ini:

[uwsgi]
module = application.wsgi:application
enable-threads = true
master = true
processes = 1
plugins = python3
project = /opt/application/
chdir = %(project)
socket = 127.0.0.1:3031
chmod-socket = 660
chown-socket = nginx:nginx
uid = nginx
gid = nginx
socket-timeout = 3600
harakiri = 3600
vacuum = true
die-on-term = true
wsgi-file=/opt/application/uwsgi.py
virtualenv = /opt/env-application/

내 wsgi.py:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "application.config.production")

application = get_wsgi_application()

관련 정보