NodeJS에서 Exception발생시 catch해주지 않으면,
app이 Crash될 텐데요.
이럴때를 대비해서, Crash가 발생할 경우,
NodeJS를 재시작 시켜주는 프로세스 매니저를 사용해야 합니다.
이런 프로세스 매니저에는 PM2, Forever등이 있는데요.
제가 검색해본 바로는 프로덕션 서비스를 하는데,
PM2가 더욱 안정적이고, 편리한 기능도 많이 제공해 주는 것 같습니다.
(순전히 개인적인 결과입니다;;)
오늘글에서는 이 PM2 에 대해서 정리해 보도록 하겠습니다.
1. PM2 설치 및 시작
우선 pm2홈페이지에 가보시면 아래와 같은 화면이 나오는데요.
monitoring툴을 제공하는 것도 보이고,
다양한 feature(기능)도 제공하는 것으로 보입니다.
먼저 pm2를 설치하겠습니다.
위의 화면에서 나오듯이 아래 명령어를 통해서 global로 설치해야 합니다.
sudo npm install pm2@latest -g
앱을 시작하려면, start명령어를 사용해주면 됩니다.
아래와 같은데요.
이름을 부여하고 싶으면, --name 후에 이름을 아래와 같이 설정해주면 되구요.
이름이 필요없다면 pm2 start app.js로 실행해주면 됩니다.
pm2 start app.js
pm2 start app.js -n 'testApp'
아래와 같이, pm2가 실행되는 것을 볼 수 있습니다.
이미지의 하단에 보면, 실행하고 있는 앱의 상태를 표로 보여주고 있습니다.
현재 실행중인 앱의 리스트는 다음 명령어를 통해서 볼 수 있습니다.
pm2 list
2. PM2 재시작 및 중단
pm2를 재시작 하거나 중단하는 방법에 대해서도 알아보겠습니다.
재시작 하는 방법은 아래 명령어를 사용하면 됩니다.
pm2 restart <id 또는 앱이름 >
여기서의 id나 앱이름은 pm2를 start시켰을 때,
위에서 본 이미지의 표에 나오는 그 것입니다.
추가로, 모든 프로세스에서 실행되는 앱을 재시작 하려면,
아래와 같이 해주면 됩니다.
pm2 restart all
서버 공백없이(중단하지 않고), 재실행하려면 reload명령어를 사용해 줍니다.
pm2 reload <id 또는 앱이름>
pm2 reload all
중단하는 방법도 비슷한데요.
pm2 stop <id 또는 앱이름 >
pm2 stop all
프로세스를 삭제하려면 delete 명령어를 사용하는데요.
pm2 delete <id 또는 앱이름>
pm2 delete all
3. PM2 로그 및 모니터보기
로그를 보는 명령어는 아래와 같구요.
pm2 logs
기록된 로그를 지우려면, 아래 명령어를 사용해 줍니다.
pm2 flush
PM2는, 모니터링 툴도 제공해주는데요.
pm2 monit
실행하면 아래와 같이 간단한 UI화면이 나타납니다.
4. PM2 Cluster모드
6. PM2 업데이트
최신 버전의 pm2로 업데이트 하기위해서는 아래와 같이 해주면 됩니다.
sudo npm install pm2@latest -g
다음으로 현재 메모리에 올라가 있는 pm2를 어데이트 하기위해,
다음 명령어를 입력해 주면 됩니다.
pm2 update
'NodeJS' 카테고리의 다른 글
NodeJS ErrorCode 정리 (0) | 2019.03.31 |
---|---|
NodeJS에서 활용하는 process.env (1) | 2019.03.26 |
NodeJS에서 사용하는 Logging모듈 Winston (0) | 2018.04.03 |
NodeJS에서 node-schedule이용한 스케쥴러 작업 (0) | 2017.10.11 |
NodeJS에서 module.exports 사용하여 routing하기 (0) | 2017.08.12 |