IT/서버
gunicorn 서비스로 등록하기
thesse
2021. 6. 7. 16:27
300x250
반응형
gunicorn의 시작, 중지를 쉽게 하고 리눅스 서버 재부팅시 gunicorn 자동실행을 위해
환경 변수 파일 생성
/home/ubuntu/venv/myproject.env
FLASK_APP=pybo
FLASK_ENV=development
APP_CONFIG_FILE=/home/ubuntu/projects/myproject/config/production.py
서비스 파일 생성
/etc/systemd/system/myproject.service
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/projects/myproject
EnvironmentFile=/home/ubuntu/venvs/myproject.env
ExecStart=/home/ubuntu/venvs/myproject/bin/gunicorn \
--workers 2 \
--bind unix:/tmp/myproject.sock \
"pybo:create_app()"
[Install]
WantedBy=multi-user.target
실행해보기
# 서비스 시작
sudo systemctl start myproject.service
# 서비스 실행 상태 확인
sudo systemctl status myproject.service
# 리눅스 서버 재시작할때 자동 실행
sudo systemctl enable myproject.service
만약 서비스를 시작하고 나서 status를 쳤을 때 active:fail이 뜬다면
아래 명령어로 syslog 파일 확인하고 수정
tail -f /var/log/syslog
수정한 후에는 systemctl daemon-reload 해주고 다시 start
(myproject) ubuntu@...:~/venvs$ sudo systemctl start myproject.service
Warning: The unit file, source configuration file or drop-ins of myproject.service changed on disk. Run 'systemctl daemon-reload' to reload units.
(myproject) ubuntu@...:~/venvs$ sudo systemctl daemon-reload
(myproject) ubuntu@...:~/venvs$ sudo systemctl start myproject.service
300x250
반응형