티스토리 뷰
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
서버 재부팅 시 자동 실행할 수 있게 세팅
$ pm2 startup
$ pm2 unstartup // 자동실행 끄기
참고사항
서버를 실행하는 명령어가
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를 써서 최대한 돌릴 수 있다.
'Server dev. > Node JS' 카테고리의 다른 글
EADDRINUSE: address already in use :::80 (0) | 2020.11.02 |
---|---|
Node.js & MySQL 프로젝트 초기 환경 설정 (0) | 2020.10.23 |
[MySQL Sequelize] Error: Dialect needs to be explicitly supplied as of v4.0.0 (0) | 2020.10.14 |
Node.js 환경 설정 in MacOS/Ubuntu (0) | 2020.09.11 |
MongoDB 데이터 타입 종류 (0) | 2018.10.22 |
- Total
- Today
- Yesterday
- error
- git
- Novel View Synthesis
- Macbook
- java
- Docker
- Neural Radiance Field
- 2-stage Detector
- Deep Learning
- MacOS
- pytorch
- GaussianSplatting
- Machine Learning
- MySQL
- Python
- Anaconda
- GPU
- CUDA
- Computer Vision
- ubuntu
- nerf
- nvidia
- 우분투
- numpy
- 3Dvision
- SSH
- vscode
- nginx
- Android
- Object Detection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |