[pm2/NodeJS] pm2 자주 쓰는 명령어 정리

dani·2026년 1월 24일

NodeJS

목록 보기
1/1

🔸pm2란

pm2NodeJS 서버를 백그라운드에서 실행하고 관리할 수 있게 해주는 도구이다. 노드 서버를 다룬다면 한 번쯤은 다루게 되는 프로세스 관리자이다. 리눅스 서버에서 노드 서버를 다룰 때 사용하게 된다.


서버를 켜고 끄는 것 말고도 모니터링, 최적화 등 여러 기능이 많은 도구이다. 이번 시간에는 자주 사용하는 pm2 명령어를 알아볼 것이다. 명령어가 어렵지 않고 직관적인 편이라 사용하기 용이했다.

🔸pm2 명령어

◾pm2 전역 설치

pm2를 -g 옵션을 붙여 전역으로 설치한다. 어디서든 pm2 명령어를 사용할 수 있게 해준다. 서버 전체에서 프로세스를 관리하는 도구이기 때문에 전역으로 설치한다.

npm install -g pm2

◾pm2 설치 확인

pm2가 정상 설치되었는지 확인한다.

pm2 -v

◾서버 실행하기

🔻JS 파일 실행

pm2 start app.js

🔻이름 지정하여 실행하기

pm2 start app.js --name my-app

◾상태 확인하기 (多)

🔻전체 프로세스(서버) 목록 조회

pm2 list

위에서 start명령어로 실행시킨 서버들이 돌아가고 있을 것이다. 아래 명령어로 전체 프로세스 목록을 확인할 수 있다.

start로 실행시킨 것, stop되어있는 것 등 삭제되지 않고 pm2로 올린 서버들 전체를 보여준다.

pm2 사용 시 가장 많이 사용하는 명령어이다. pm2 status도 같은 명령어이다.

🔻상태 정보 조회

pm2 show my-app

◾서버 중지

pm2 stop my-app

◾서버 재시작

pm2 reload my-app

restart는 그냥 껐다 키는 것이지만, reload는 무중단 재시작이라고한다. (단, 클러스터 모드일 때)

◾서버 제거

pm2 delete my-app

pm2에서 제거된다. stop은 서버를 중단하지만, delete는 완전 제거이다.

◾로그 보기(多)

실무에서 정말 많이 사용하는 명령어 중 하나이다.

🔻현재 전체 로그 보기

pm2 logs

🔻특정 앱 로그 보기

pm2 logs my-app
pm2 logs --lines 100 

로그 파일 위치는 ~/ .pm2/logs/에서 확인할 수 있다.

◾서버 재부팅 시 자동 실행

1. startup 명령 실행

pm2 startup

2. 출력 명령어 실행

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u ubuntu --hp /home/ubuntu

1번에서 startup명령어를 통해 실행시키면 해당 경로에 맞는 명령어를 알려준다. 그대로 실행시킨다.

3. 저장 명령어

pm2 save

이제 서버 재부팅해도 자동으로 실행된다.

실무에서 정말 유용한 명령어이다.

이 작업을 해두지 않으면 현재 pm2를 이용해 띄운 서버들이 존재하는 엄마 서버(?)가 죽으면 다시 켰을 때 서버들이 당연히 종료되어 있기 때문에 수동으로 다시 켜줘야하는데, 이 명령어를 통해 방지할 수 있다.

◾클러스터 모드

pm2 start app.js -i max
  • CPU 코어 수만큼 인스터스 실행
  • 로드밸런싱 자동

다음 시간에는 ecosystem.config.js 파일을 이용하여 사용하는 것도 알아볼 것이다.

⭐자주 사용하는 명령어 요약

pm2 list 를 통해 아이디를 확인할 수 있는데 아이디를 이용해서도 명령어를 이용할 수 있다. pm2 start app.js 대신 pm2 start 0 과 같이 사용한다.

pm2 start 1 #서버 시작
pm2 list #모든 서버 리스트 출력
pm2 logs #전체 로그 출력 
pm2 logs 1 #하나의 서버 로그 출력
pm2 reload 1 #서버 재시작
pm2 stop 1 #서버 중단
pm2 detete 1 #서버 삭제
profile
개발세포 이야기

0개의 댓글