본문 바로가기

오픈소스/노드

[Node] PM2 설치 및 사용법

 PM2 또는 Process Manager 2는 개발자와 Devops가 프로덕션 환경에서 Node.js 애플리케이션을 관리하는 데 도움 이 되는 오픈 소스 프로덕션 Node.js 프로세스 관리자입니다. Supervisord, Forever, Systemd 와 같은 다른 프로세스 관리자와 비교하여 PM2의 일부 주요 기능은 자동 애플리케이션 로드 밸런싱, 선언적 애플리케이션 구성, 배포 시스템 및 모니터링 입니다.

 

 기존에 클러스터 모드 및 오류로 인한 프로세스 종료 현상 등 개발자가 인지하지 못한 상황에서 간단한 설정으로 이러한 문제들을 해결할 수 있는 Node 의 인기 라이브러리 중 하나입니다.

 

 그러면 실무에서 필요로 하는 최소한의 정보들을 알아보고 적용해보도록 합시다.

 

 

# Contents


  • PM2 설치
  • PM2 사용법

 

 

# PM2 설치


 npm이 설치되어 있는 상황에서 아래 명령어를 터미널에 입력하여 PM2를 설치 해보도록 합시다.

 

$ npm install pm2@latest -g
# or
$ yarn global add pm2

 

 

# PM2 사용법


 PM2 의 주요 사용 명령어에 대해 알아보도록 하겠습니다.

 

  • pm2 start
  • pm2 restart
  • pm2 stop
  • pm2 delete
  • pm2 monit
  • pm2 logs
  • pm2 list

 

1. pm2 start

 애플리케이션을 시작, 데몬화 및 모니터링 하는 가장 간단한 방안은 다음 명령어를 사용하는 것 입니다.

 

pm2 start app.js

 

 다음은 CLI에 전달할 수 있는 옵션입니다. 보시다시피 PM2로 애플리케이션을 관리하는 데 사용할 수 있는 많은 옵션이 있습니다. 사용 사례에 따라 찾을 수 있습니다.

 

# Specify an app name
--name <app_name>

# Watch and Restart app when files change
--watch

# Set memory threshold for app reload
--max-memory-restart <200MB>

# Specify log file
--log <log_path>

# Pass extra arguments to the script
-- arg1 arg2 arg3

# Delay between automatic restarts
--restart-delay <delay in ms>

# Prefix logs with time
--time

# Do not auto restart app
--no-autorestart

# Specify cron for forced restart
--cron <cron_pattern>

# Attach to application log
--no-daemon

 

Node.js 애플리케이션의 경우 PM2에는 생성된 각 프로세스 간에 모든 HTTP[s]/Websocket/TCP/UDP 연결을 공유하는 자동 로드 밸런서가 포함됩니다. 클러스터 모드에서 애플리케이션을 시작 하려면 아래와 같은 명령어를 사용합니다.

 

pm2 start app.js -i max

 

 클러스터 모드에 대한 자세한 내용은 여기를 참조하십시오.

 

2. pm2 restart

 애플리케이션을 재시작 을 위한 명령어 입니다.

 

pm2 restart app.js

 

 

3. pm2 stop

 start와는 반대로 실행되어져 있는 애플리케이션을 멈추는 명령어 입니다. pm2에 등록이 된 상태에서 제거되지는 않습니다.

 

pm2 stop app.js

 

4. pm2 delete

 등록된 애플리케이션을 제거하는 명령어입니다.

 

pm2 delete app.js

 

5. pm2 monit

 터미널 기반의 실시간으로 애플리케이션을 감시 할 수 있는 모니터링 명령어입니다.

 

pm2 monit

 

6. pm2 logs

 실시간으로 로그를 표시 하는 명령어 입니다.

 

pm2 logs

 

 

7. pm2 list

 관리되는 애플리케이션의 목록 을 나열하는 명령어입니다.

 

pm2 list

 

 

 

# 마무리


  PM2를 사용하여 애플리케이션을 관리하는 실무에서 적용할 수 있는 아주 기본적인 명령어를 다뤄보았습니다. 여러 애플리케이션들을 한번에 관리할 때 사용하는 방법인 PM2 구성 파일 설정 은 아래 사이트를 참고해주시기 바랍니다.

https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/

 

PM2 - Single Page Doc

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

pm2.keymetrics.io

 

 아주 기본적이고 간단하면서도 강력한 PM2의 라이브러리를 사용하여 프로젝트를 안전하게 구동시키세요!!