본문 바로가기
infra

[TIL] js pm2 패키지

by marble25 2023. 11. 5.

Linux에서 nohup을 이용해서 백그라운드로 프로세스를 전환하고, 구동할 수 있다. 이에 더해 웹서버가 죽었을 때에도 다시 살아나는 기능이 필요해 패키지를 찾아보던 중 가장 대중적으로 사용되는듯 해서 써보고 정리해 두고자 한다. golang으로 프로세스 데몬화하고 재실행하는 스크립트를 직접 구현했는데 이 패키지만 있으면 굳이 추가 구현이 필요 없을 듯 하다.

참고 문서: https://www.npmjs.com/package/pm2

개요

PM2(Process Manager 2)는 스크립트를 지속적으로 실행할 수 있도록 하는 패키지이다. 어플리케이션을 계속 살아있게 해주고, 다운타임 없이 리로드할 수 있게 해준다.

설치

npm install -g pm2

시작

pm2 start app.js

프로세스는 데몬화되고, 계속해서 모니터링된다.

관리

pm2는 프로세스를 관리하는데 신경을 많이 쓴 듯 하다. 

모든 application을 보고 싶다면

pm2 list

직접 관리하고 싶다면

$ pm2 stop     <app_name|namespace|id|'all'|json_conf>
$ pm2 restart  <app_name|namespace|id|'all'|json_conf>
$ pm2 delete   <app_name|namespace|id|'all'|json_conf>

클러스터 모드로 실행하는 것도 지원한다. Node js application을 여러개 띄우고, 그들 사이에 로드 밸런싱도 지원한다. 이는 전체적인 Performance와 Reliability를 증가시켜 준다.

pm2 start api.js -i <processes>

 

'infra' 카테고리의 다른 글

[TIL] aws codebuild에서 docker image pull rate limit 해결하기  (0) 2023.12.15
[TIL] mig 해제하기  (0) 2023.12.14
무중단 배포 프로세스  (0) 2023.09.17
컨테이너 보안  (0) 2023.07.14
[TIL] GSLB(Global Server Load Balancing)  (0) 2023.03.30