배포를 완료했는데 계속해서 중간에 코드가 실행이 안되는 문제가 생겼다.
.
이를 해결하기 위해 nginx 데몬을 내 파이썬 코드에 연동하여 실행하였다.
데몬(Daemon)
데몬은 사용자가 직접 실행하거나 조작하지 않아도 백그라운드에서 계속 실행되어 필요한 작업을 수행하는 프로그램
데몬의 예
- 웹 서버 데몬:
- nginx 또는 Apache와 같은 웹 서버는 데몬으로 실행되어 웹 요청을 처리.
- 데이터베이스 데몬:
- MySQL 또는 PostgreSQL과 같은 데이터베이스 서버는 데몬으로 실행되어 데이터베이스 요청을 처리.
- cron 데몬:
- cron은 일정한 시간 간격으로 특정 작업을 수행하는 데몬. 예를 들어, 매일 백업을 수행하거나 정기적으로 시스템 업데이트를 확인.
Python 스크립트를 데몬으로 실행 과정
nginx에 관한 블로그 글에서 이어 데몬을 활용해서 ec2 창을 닫아도 파이썬 코드가 실행되게 해보자!
systemd 서비스 파일 작성
Python 스크립트를 데몬으로 실행하기 위해 systemd 서비스 파일을 작성한다.
sudo nano /etc/systemd/system/openport.service
[Unit]
Description=Open Port Python Script
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu
ExecStart=/usr/bin/python3 /home/ubuntu/open_port.py
[Install]
WantedBy=multi-user.target
서비스 파일을 저장한 후, systemd를 다시 로드한다
sudo systemctl daemon-reload
sudo systemctl enable openport.service
sudo systemctl start openport.service
##코드 실행 예시##
#서비스 시작:
sudo systemctl start 서비스이름
#서비스 중지:
sudo systemctl stop 서비스이름
#서비스 상태 확인:
sudo systemctl status 서비스이름
nginx 다시 시작
nginx 설정을 다시 로드합니다:
sudo systemctl restart nginx
systemctl 명령어를 사용하여 서비스 상태 확인
#nginx 상태 확인
sudo systemctl status nginx
#내 파이썬 코드가 실행 중인지 확인
sudo systemctl status openport.service
(출처:chat gpt)
'Development > Back' 카테고리의 다른 글
서브 도메인 설정 및 HTTPS 적용: AWS EC2와 Let's Encrypt 활용 (2) | 2024.06.16 |
---|---|
Nginx란 무엇인가? (0) | 2024.05.31 |
챗봇의 다양한 기능 추가(채팅갯수 제한/DB연결) (0) | 2024.05.26 |
나만의 챗봇 만들어 보기(Open AI 어시스턴스 실습) (0) | 2024.05.19 |
백엔드 서버 구현해보기(flask 실습) (0) | 2024.05.12 |