pm2 설정 정보 복원

0 투표
pm2 데몬 실행중이였는데, 설정정보가 많습니다.

리부팅 및 다운, 재시작으로 설정정보가 없어진것 같아요.

복원하는 방법 없나요?

1 답변

0 투표

PM2가 관리하던 프로세스 리스트(등록 정보)는 PM2의 “덤프 파일”이나 “저장된 상태”에 기반해서 복원(resurrect)되는데, 이 데이터가 사라졌다면 로그 파일을 뒤져서 최소한 어떤 앱을 띄웠었는지 단서를 얻을 수는 있습니다. 아래 순서대로 확인해 보세요.


1. 덤프 파일(dump file)‑기반 복원 시도

PM2는 pm2 save 명령을 쓰면 ~/.pm2/dump.pm2 라는 JSON 파일에 현재 프로세스 정보를 저장합니다.

ls -l ~/.pm2/dump.pm2
cat ~/.pm2/dump.pm2 | jq .

– 파일이 남아 있다면, pm2 resurrect 명령으로 바로 복원할 수 있습니다.

pm2 resurrect

2. PM2 자체 로그 확인

덤프 파일이 없다면, PM2 런타임 로그(~/.pm2/pm2.log)를 열어 “프로세스 시작 시점” 로그를 찾아봅니다.

grep -E "Launching|Starting app" ~/.pm2/pm2.log

여기엔 다음과 같은 형식의 메시지가 남아 있습니다.

PM2        | App [my-app:0] starting in -fork mode-
PM2        | App [my-app:0] online

my-app 은 PM2에 등록된 앱 이름
– 로그 바로 앞뒤로 스크립트 경로인수(args) 정보도 같이 기록되어 있을 수 있습니다.


3. 각 앱의 출력 로그 파헤치기

PM2는 앱별로 ~/.pm2/logs/{앱이름}-out.log{앱이름}-error.log를 남깁니다.

ls ~/.pm2/logs/
tail -n 30 ~/.pm2/logs/my-app-out.log

– 앱이 구동될 때 자기 자신(예: Express 서버)이 시작 로그를 찍었다면, 로그 헤더에서 어떤 포트를 열었는지, 어떤 환경변수를 썼는지 단서를 얻을 수 있습니다.


4. 시스템 서비스 로그 확인 (systemd)

만약 pm2 startupsystemctl enable pm2-$(whoami) 형태로 PM2를 서비스로 등록했다면, systemd 저널에도 명령 인자가 남아 있을 수 있습니다.

journalctl -u pm2-$(whoami).service --since "1 day ago"

– 여기에 ExecStart=/home/ubuntu/.nvm/versions/node/... pm2 resurrect 혹은 pm2 start /path/to/app.js --name "my-app" 같은 라인이 있을 수 있습니다.


결론

  • 덤프 파일(~/.pm2/dump.pm2)이 남아 있으면 pm2 resurrect 로 즉시 복원
  • 없다면 PM2 런타임 로그(~/.pm2/pm2.log)에서 “앱 이름”, “스크립트 경로”, “인자” 등을 추출
  • 앱별 out/error 로그systemd 저널도 부가 단서로 활용

이렇게 로그들을 종합해 보면, 예전에 어떤 앱을 어떤 옵션으로 PM2에 등록했는지 대략 복원할 수 있으며, 복원 후엔 pm2 save 로 덤프를 다시 만들어 두시면 다음번에 잃어버릴 위험을 줄일 수 있습니다.

문의 1 일 pm2 pm2 로그로 디스크가 가득 100% 되었습니다.
구로역 맛집 시흥동 맛집
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
add
...