サービスが停止すると、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()

ベストアンサー1

おすすめ記事