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()