본문 바로가기

포트폴리오 (날씨 앱)

pm2 무한 재실행 문제 (pm2 infinite restart)

ecosystem.config.js

문제의 파일이다.

옵션 중 watch라는 옵션은 디렉터리 내 변경사항이 생겼을 경우 해당 변경사항을 감지하여 서버를 재시작한다.

그런데 어떤 파일이건 내용을 변경하고 저장을하면 끊임없이 재시작하는 문제점이 발생.

처음에는 log 폴더 내 로그 파일이 매 요청마다 로그를 남기니까 이게 문제인가 싶었음.

 

해당 문제를 개발자 단톡방에 질문을 해보니

pm2 start ecosystem.config.js --no-daemon 명령어를 이용하여 시작해보라고 한다.

 

로그를 확인해보니까 서버 폴더 내 .git 폴더도 감지하고 있는것이 확인됨. (저 녀석이 원인이다.)

 

ignore_watch 옵션을 통해 .git 폴더 추가

 

이제 한 번만 실행되고 끝난다.

 

원인은 .git 폴더의 변경사항을 감지하고 있어서

이전에 올려뒀던 내역과 일치하지 않는 점이 있어서 계속 재실행을 하게 된 듯 하다.

pm2의 watch 옵션은 해당 서버 디렉터리 내 모든 디렉터리와 파일을 감지하는 듯 하다. (숨겨진 파일 조차도)

 

ecosystem.config.js로 서버를 가동할 때는 반드시 .git 폴더를 추가하도록 하자.