티스토리 뷰

반응형

PM - Project Manager 의 약자.

 

클라우드 서버( e.g. Amazon Web Service)를 이용하여 어플리케이션을 운영하는 경우,

데몬으로 서버를 계속 띄워놔야 하고, 컴퓨터를 끄면 서버도 끊어지게 된다. 

 

이전에는 Screen Command를 이용하여 서버를 띄워놨었는데, 

PM2라는 좋은 프로젝트 관리자를 알게 되어 사용해 보았다.

 

 

PM2 링크 : http://pm2.keymetrics.io/

 

 

설치

 

설치는 npm 패키지 관리자를 통해서 간단하게 설치할 수 있다.

전역으로 설치해주자

 

$ npm install pm2 -g $ pm2 -v 3.2.2

 

실행

 

실행하고자 하는 Node.js 어플리케이션 실행 파일이 app.js 라면

$ pm2 start app.js

요롷게 실행하면 된다.

 

 

 

 

실시간 모니터링

 

실시간 모니터링도 가능하다.

$ pm2 monit

 

 

리스트 확인

 

실행 중인 프로세스 목록을 확인하기 위해선 list 명령어를 사용한다.

$ pm2 list

 

 

그 외에도 

 

어플리케이션 종료 

$ pm2 stop <app Name>

어플리케이션 재 시작

$ pm2 restart <app Name>

어플리케이션 삭제

$ pm2 delete <app Name>

등의 명령어가 있다.

 

 

서버 로그 파일 확인 (리눅스의 경우)

 

pm2 monit 명령어를 사용하면 실시간 서버 로그를 확인할 수 있지만

눈이 빠져라 모니터만 바라보고 있을 순 없지 않은가

 

지나간 과거의 서버 로그 기록을 확인할 수 있는 방법이 있다.

 

$ pm2 logs <app Name>

하지만 이 명령어도 지난 15줄의 기록 밖에 확인할 수 없기 때문에, 서버 로그 파일을 확인하면 된다.

 

파일의 위치는 ~/.pm2/logs 에 있다.

 

 

 

서버 로그 파일 확인 (Windows의 경우)

 

윈도우의 경우 default로 깔리는 위치는 

C:\Users\{사용자이름}\.pm2\logs

 

 

참고사항

 

서버를 실행하는 명령어가

node app.js

nodemon app.js

가 아닌

 

npm start

yarn dev

yarn start

 

와 같은 경우에는

 

pm2 start npm -- start

pm2 start yarn -- dev

 

와 같이 실행해주면 된다.

(start 앞에 띄어쓰기 빼먹지 말고

 

속성값은 앞에다 배치하자

예를들어 이름을 넣고싶으면

 

pm2 start --name [APPNAME] npm -- start

 

 


속성값이 길어도 뒤에 붙혀주기만 하면 된다.

예를들어

$ npx serve -s -n build 를 하고싶다면

 

$ pm2 start --name [APPNAME] npx -- serve -s -n build

 

 

참고 : https://stackoverflow.com/questions/31579509/can-pm2-run-an-npm-start-script


pm2의 다양한 옵션을 사용할 수 있다. 필자는 주로 watch와 클러스터링 모드를 사용한다

 

--watch : 프로젝트 변경사항을 감지하여 자동 재시작, nodemon과 비슷함.

-i max [core_개수] : Cluster mode , -i 뒤에 클러스터 개수를 써서 개수만큼 돌리거나, max를 써서 최대한 돌릴 수 있다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함