본문 바로가기
프로그래밍/Node.js

Node.js PM2(Process Manager)

by 꾸션 2022. 5. 3.

Node.js로 실행되는 프로세스를 관리하는 툴입니다.

Linux의 service데몬이라고 생각하시면 쉽게 이해가 되실 겁니다.

PM2의 또 다른 강점은 프로세스를 CPU 코어 수만큼 실행할 수 있다는 것입니다.

1 프로세스로 실행되었을 때의 부담이 줄어들어 서버에 쾌적한 환경을 제공합니다.

 

패키지 설치부터, 서비스 등록 후 모니터링하는 과정까지 안내합니다.

 

PM2 - Home

Build Battle-Hardened Node.js Applications.

pm2.io

 

pm2 설치

PM2 패키지를 설치합니다.

sudo npm install pm2 -g

 

pm2-logrotate 설치

PM2 log 관리 패키지인 "pm2-logrotate"를 설치합니다.

pm2 install pm2-logrotate

 

실행

PM2 서비스 등록에 앞서서 프로세스를 실행합니다.

# 실행
# --name: 앱이름 지정
# -i max: CPU코어 개수만큼 실행
# --time: 로그에 시각표시

# 일반 node.js 예시
pm2 start /home/ccusean/index.js --name 앱이름 -i max --time

# express 예시
pm2 start /home/ccusean/bin/www --name 앱이름 -i max --time

 

상태 확인

실행이 잘 실행되었는지 아래의 명령어로 확인하고, 프로세스가 제대로 실행되었는지 웹브라우저 혹은 클라이언트 프로그램으로 접속해서 확인합니다.

pm2 list

 

정보 확인

실행된 앱에 대한 정보를 확인하는 명령어입니다.

pm2 info 앱이름

 

서비스 등록/삭제, 부팅 스크립트

서비스 실행 상태가 정상적인 경우:

"pm2 startup", "pm2 save"를 실행하여 서비스 등록, 스크립트 저장을 합니다.

 

서비스 실행 상태가 비정상적인 경우:

"pm2 unstartup"을 실행 후 위 "실행"항목에서 잘 못 된 부분을 수정 후 다시 서비스 등록을 실행합니다.

# 서비스 등록
pm2 startup
# pm2 startup 실행 후 나온 스크립트 실행
# ex) sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u 사용자명 --hp /home/사용자명

# 서비스 삭제
pm2 unstartup
# pm2 unstartup 실행 후 나온 스크립트 실행

# 부팅스크립트 저장
pm2 save

 

위 작업이 완료되었다면, 이제 서비스 실행 등록 과정은 모두 마쳤습니다.

아래는 서비스 변경 및 관리에 필요한 명령어들입니다.

 

재시작

코드 수정에 따른 서비스 재실행 명령어입니다.

# 재시작
pm2 reload all

# reset restart count
pm2 reset all

 

로그

로그를 확인하는 명령어입니다.

# 전체 로그
pm2 logs

# 특정 프로세스 로그
pm2 logs 앱이름

# 200줄 로그
pm2 logs --lines 200

 

모니터

콘솔 형태의 실시간으로 모니터링할 수 있도록 해주는 명령어입니다.

pm2 monit
반응형

댓글