코드짜는 노인네

[Ubuntu] nohup를 사용해도 Flask가 종료되는 경우 해결방법 (pm2) 본문

리눅스(Linux)

[Ubuntu] nohup를 사용해도 Flask가 종료되는 경우 해결방법 (pm2)

ikohong 2022. 9. 23. 02:25
728x90
반응형

[Ubuntu] nohup를 사용해도 Flask가 종료되는 경우 해결방법 (pm2)


파이썬의 Flask를 Ubuntu에서 nuhup로 작동을 시킬경우 한번씩 아무런 이유없이 종료가 되는 현상이 종종 발생을 하곤합니다. 

여기서 nohup 란?
>> 'no hang up'의 약자로 세션과 연결이 종료되어도, nohup의 명령어로 실행시킨 프로그램은 종료하지 않도록 합니다.

nohup 명령어로 실행을 했지만, Flask가 한번씩 종료가 될 경우, pm2를 이용해 안정적인 Flask 서버를 돌리는걸 추천합니다.


pm2 설치하기


pm2 란?
>> 프로세스를 관찰하고 있다가 프로세스가 종료되면 다시 실행해주는 프로세스 매니저

Ubuntu에서 pm2를 사용하기 위해서는 일단 npm(자바스크립트 프로그래밍 언어를 위한 패키지 관리자)이 먼저 필요합니다.

sudo apt-get install npm

명령어를 입력하면 설치를 할 지 여부를 물어봅니다. 'Y'를 입력해 눌러주세요.

sudo npm install pm2 -g

설치가 완료되고 난 다음, pm2가 정상적으로 설치가 되었는지 확인하기 위해서 버젼을 확인해봅니다.

pm2 -version


'pm2'로 파이썬 실행하기


파이썬 파일이 있는 디렉토리로 이동을 한 다음, pm2를 실행해야됩니다.

pm2 start app.py

위의 사진과 같이 에러가 발생을 하게 되면 아래의 코드를 입력해주시면 됩니다.

pm2 start app.py --interpreter python3

반응형

'pm2' 명령어들


pm2 리스트 보기
pm2 list
pm2 status

pm2 모니터링
pm2 monit

pm2 모니터에서 나오고 싶다면 'Ctrl + C'를 누르면 됩니다.

pm2 중지 시키기
# pm2 stop id 혹은 name

pm2 stop app
pm2 stop 0

사진을 보면, status가 'online 에서 'stopped'로 변경된 모습을 확인할 수 있습니다.

pm2 재실행
# pm2 restart id 혹은 name

pm2 restart app
pm2 restart 0

status가 'online' 상태로 변경된 모습을 확인할 수 있습니다.

pm2 삭제
# pm2 delete id 혹은 name

pm2 delete app

728x90
반응형
Comments