삼분공부/기타

[PM2] 명령어 정리

케이쓰리 2025. 2. 5. 09:33

🚀 PM2 명령어 총정리

PM2는 Node.js 애플리케이션을 관리하는 프로세스 매니저입니다.
이 글에서는 PM2의 주요 명령어와 사용법을 정리합니다.


🔹 PM2 설치

sh
복사편집
npm install -g pm2
  • 글로벌(-g)로 설치하여 시스템 어디서든 사용할 수 있도록 합니다.

🔹 애플리케이션 실행

1️⃣ 기본 실행

sh
복사편집
pm2 start app.js
  • app.js 파일을 실행하고 PM2로 관리 시작

2️⃣ 실행 시 이름 지정

sh
복사편집
pm2 start app.js --name myApp
  • myApp이라는 이름으로 실행하여 관리하기 쉽게 만듦

3️⃣ 여러 개의 애플리케이션 실행

sh
복사편집
pm2 start app.js --name uat1 --port 3000 pm2 start app.js --name uat2 --port 4000
  • 같은 파일(app.js)을 다른 포트에서 실행

4️⃣ 클러스터 모드 실행 (멀티 프로세스)

sh
복사편집
pm2 start app.js -i max
  • CPU 코어 수에 맞춰 자동으로 여러 개의 프로세스 실행
  • -i 2 로 지정하면 2개의 프로세스로 실행

🔹 실행 중인 애플리케이션 관리

1️⃣ 현재 실행 중인 프로세스 목록 확인

sh
복사편집
pm2 list

또는

sh
복사편집
pm2 status
  • 실행 중인 애플리케이션 리스트를 확인

2️⃣ 특정 애플리케이션의 상태 확인

sh
복사편집
pm2 show myApp
  • myApp의 상태와 실행 정보를 상세히 출력

🔹 애플리케이션 제어

1️⃣ 애플리케이션 재시작

sh
복사편집
pm2 restart myApp
  • myApp을 재시작

2️⃣ 모든 애플리케이션 재시작

sh
복사편집
pm2 restart all
  • 실행 중인 모든 애플리케이션을 재시작

3️⃣ 애플리케이션 중지

sh
복사편집
pm2 stop myApp
  • myApp만 중지

4️⃣ 모든 애플리케이션 중지

sh
복사편집
pm2 stop all
  • 모든 애플리케이션을 중지

5️⃣ 애플리케이션 삭제

sh
복사편집
pm2 delete myApp
  • myApp을 삭제 (목록에서도 제거됨)

6️⃣ 모든 애플리케이션 삭제

sh
복사편집
pm2 delete all
  • 모든 애플리케이션을 삭제

🔹 PM2 로그 확인

1️⃣ 실시간 로그 보기

sh
복사편집
pm2 logs
  • 모든 애플리케이션의 로그를 실시간으로 출력

2️⃣ 특정 애플리케이션 로그 보기

sh
복사편집
pm2 logs myApp
  • myApp의 로그만 출력

3️⃣ 로그 파일 경로 확인

sh
복사편집
pm2 show myApp
  • out.log와 error.log 파일 경로 확인 가능

4️⃣ 로그 파일 삭제

sh
복사편집
pm2 flush
  • 모든 애플리케이션의 로그 파일을 삭제

🔹 서버 재부팅 후 자동 실행 설정

1️⃣ 현재 실행 중인 프로세스를 저장

sh
복사편집
pm2 save
  • 현재 실행 중인 애플리케이션 목록을 저장

2️⃣ 시스템 부팅 시 자동 실행 설정

sh
복사편집
pm2 startup
  • 부팅 시 PM2가 자동으로 애플리케이션을 실행하도록 설정

3️⃣ 자동 실행 해제

sh
복사편집
pm2 unstartup
  • 자동 실행 기능을 비활성화

🔹 PM2 설정 파일 (ecosystem.config.js) 사용

PM2를 사용할 때 설정 파일을 만들면 여러 개의 애플리케이션을 한 번에 관리할 수 있습니다.

1️⃣ 설정 파일 생성

sh
복사편집
pm2 init
  • ecosystem.config.js 파일이 생성됨

2️⃣ 설정 파일 예제 (ecosystem.config.js)

js
복사편집
module.exports = { apps: [ { name: "uat1", script: "./app.js", env: { NODE_ENV: "production", PORT: 3000, }, }, { name: "uat2", script: "./app.js", env: { NODE_ENV: "production", PORT: 4000, }, }, ], };
  • uat1과 uat2 두 개의 애플리케이션을 각각 3000, 4000 포트에서 실행

3️⃣ 설정 파일 적용

sh
복사편집
pm2 start ecosystem.config.js
  • 설정 파일을 기반으로 모든 애플리케이션 실행

4️⃣ 설정 변경 후 재적용

sh
복사편집
pm2 reload ecosystem.config.js
  • ecosystem.config.js 변경 사항을 반영

🔹 PM2 업데이트 및 재설치

1️⃣ PM2 업데이트

sh
복사편집
pm2 update
  • 최신 버전으로 업데이트

2️⃣ PM2 재설치 및 데이터 초기화

sh
복사편집
pm2 uninstall pm2 -g npm install -g pm2 pm2 update
  • PM2를 삭제 후 다시 설치하여 문제 해결