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 |