node.js 프로세스 관리 도구 PM2 (--watch 옵션 trouble shooting)

2021. 10. 28. 17:36Programming/WEB

PM2

pm2 는 node.js 프로세스 관리 도구이다.


https://pm2.keymetrics.io/

 

PM2 - Home

Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance.

pm2.keymetrics.io


pm2를 이용하면 error 로 인해 프로젝트가 중단되었을 때 바로 재부팅을 해서 무중단 서비스를 운영할 수 있다.

 

설치

npm install pm2 -g

 

 

실행


공식사이트에 나와있다시피 아래와 같이 앱을 실행할 수 있다.

pm2 start app.js

 

 

--watch option

pm2 start app.js --watch

 

토이 프로젝트를 개발할때 유용한 기능 중 --watch 옵션이 있다. --watch 옵션을 추가하면 파일이 변경될때 실시간으로 재부팅된다. 즉, 개발 과정중 코드가 수정되었을때 이를 자동으로 반영할 수 있어 개발 중 유용하다.

 

--watch option trouble shooting


그런데 node.js 게시판 application을 만들던 도중  pm2를 사용하면 게시물 create, update, delete 직후 잠시 css 가 적용되지 않고 화면이 깨지는 현상이 있었다.
확인해보니, 게시물이 local filepath 에 저장되고 있는데 이부분 또한 watch를 하고 있기 때문에 게시물 내용의 data가 변경될 때마다 reboot가 일어났고, 지연으로 인해 css 가 적용되지 않은 것으로 보인다.
pm2의 watch  항목에서 코드와 관계없이 실시간으로 변경되는 부분을 제외시켜주면 정상 동작한다

pm2 start main.js --watch --ignore-watch="data/*"