nohup과 &로 파이썬 플라스크 웹 서버를 백그라운드로 실행하기

AWS와 같은 클라우드 인스턴스에서 웹 서버를 구동할 때, 터미널을 종료해도 프로그램은 계속 실행되도록 해야할 경우가 있습니다. 이때, nohup& 명령어를 사용하면 터미널 종료 후에도 백그라운드로 웹 서버를 구동시킬 수 있습니다. Ubuntu에서 Python Flask App을 백그라운드로 실행하는 방법을 알아보겠습니다.


Flask 백그라운드 실행

$ nohup python -u flask_app.py &
  • -u : 터미널에서 웹 서버 실행 결과를 실시간으로 보고자 할 경우 사용합니다.(아래 nohup.out 설명 참조)
  • & : 프로그램을 백그라운드로 실행시켜줍니다. 단, nohup을 사용하지 않으면 터미널 종료 시 프로그램도 함께 종료됩니다.


Flask 로그 확인

nohup을 이용해 백그라운드로 Flask App을 실행하게 되면, nohup.out이라는 로그 파일이 생성됩니다. 다음과 같이 로그를 확인할 수 있습니다.

$ tail -f nohup.out


백그라운드로 실행되고 있는 Flask App 종료

Flask App을 종료하기 위해서는 설정해둔 포트(ex.Flask 기본 포트:5000)를 조회하여 프로세스를 종료할 수 있습니다.

$ lsof -i :5000
COMMAND   PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
python3 32258 user    3u  IPv4 5575349      0t0  TCP *:5000 (LISTEN)
python3 32260 user    3u  IPv4 5575349      0t0  TCP *:5000 (LISTEN)
python3 32260 user    4u  IPv4 5575349      0t0  TCP *:5000 (LISTEN)


위와 같이 PID값을 확인한 뒤, 아래와 같이 종료해주면 Flask App이 종료됩니다.

$ sudo kill -9 32258
$ sudo kill -9 32260

태그:

카테고리:

업데이트:

댓글남기기