Gunicorn 데몬을 설정할 수 없습니다.

Gunicorn 데몬을 설정할 수 없습니다.

EC2 인스턴스에서 Gunicorn 데몬을 설정할 수 없습니다. 다음은 샘플 코드와 오류/로그 메시지입니다.

myproject-백엔드/gunicorn.conf

import os
import multiprocessing

from dotenv import load_dotenv

# load .env file
APP_ROOT = os.path.dirname(__file__)
dotenv_path = os.path.join(APP_ROOT, '.env')
load_dotenv(dotenv_path=dotenv_path)

# Please refer http://docs.gunicorn.org/en/latest/settings.html# for ducumentation.
bind = os.getenv('GUNICORN_BIND')
workers = multiprocessing.cpu_count() * 2 + 1
daemon = True
preload = True
reload = False
umask = os.getenv('GUNICORN_UMASK')
group = os.getenv('GUNICORN_GROUP')
user  = os.getenv('GUNICORN_USER')
pythonpath = os.getenv('PYPATH')

myproject-백엔드/.env

# This will load environment specific dynamic configurations.
# possible value - "development", "testing", "stage", "production"
INSTANCE_TYPE="production"

# gunicorn config
GUNICORN_UMASK=0
GUNICORN_GROUP='ubuntu'
GUNICORN_USER='ubuntu'
GUNICORN_BIND='localhost:8080'
#GUNICORN_BIND='127.0.0.1:8080'
PYPATH='/home/ubuntu/project/myproject-backend/'

/etc/systemd/system/gunicorn.service

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/project/myproject-backend
ExecStart=/home/ubuntu/project/myproject-backend/.venv/bin/gunicorn -c /home/ubuntu/project/myproject-backend/gunicorn.conf wsgi:app
#ExecStart=/home/ubuntu/project/myproject-backend/.venv/bin/gunicorn --access-logfile - --workers 3 --bind unix::8080 wsgi:app

[Install]
WantedBy=multi-user.target

sudo systemctl 상태 gunicorn 반품

gunicorn.service - gunicorn daemon
   Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2019-08-27 01:12:22 UTC; 50s ago
 Main PID: 4515 (code=exited, status=0/SUCCESS)

Aug 27 01:12:21 ip-172-31-40-176 systemd[1]: Started gunicorn daemon.

. sudo 저널ctl -u Gunicorn

Aug 27 00:47:15 ip-172-31-40-176 systemd[1]: Gunicorn 데몬을 시작했습니다. Aug 27 00:58:09 ip-172-31-40-176 systemd[1]: Gunicorn 데몬을 시작했습니다.

주석 ExecStart줄을 사용하면 모든 것이 괜찮아 보이지만 구성 파일에서 실행 /etc/systemd/system/gunicorn.service하고 싶습니다 . gunicorn어떻게 해야 하나요?

답변1

gunicorn.cfg내가 변경할 때 파일에

umask = os.getenv('GUNICORN_UMASK')
group = os.getenv('GUNICORN_GROUP')
user  = os.getenv('GUNICORN_USER')

도착하다

umask = 0
user = None
group = None

그러면 모든 것이 괜찮아 보입니다. 이유와 방법을 모르겠습니다. 하지만 그렇습니다. 문제가 해결되었습니다. 여기 누군가가 나에게 설명해줄 수 있다면 좋을 것 같아요.

관련 정보