PM2는 P(Process) M(Manager) 2로 NodeJS 프로세서를 관리해주는 역할을 합니다. PM2는 앱이 계속 살아 있을 수 있도록 도와주는 역할을 하고 프로그램의 다운 없이 다시 로드 할 수 있도록 해주는 등의 역할을 합니다.
1. 설치하기
설치는 간단히 npm 을 이용함으로 npm install pm2 -g로 설치합니다.
$ npm install pm2 -g
2. 실행 및 종료하기
실행 역시 간단합니다. pm2 start app.js 명령어 만으로 nodejs 프로젝트의 실행이 가능합니다.
$ pm2 start app.js
아래와 같이 여러개의 프로세서를 켜두고 작동을 볼수도 있습니다.
종료는 pm2 stop id 혹은 pm2 kill 로 해당 프로세스를 종료하거나 pm2 자체를 종료할수도 있습니다.
$ pm2 stop 0
$ pm2 kill
좀더 자세한 방법들은 아래에서 설명드리겠습니다.
3. 기본적인 사용방법들
사용 관련 기능들이니 따로 설명 드리진 않겠습니다. 따라해보는게 더 좋을 것 같습니다.
리스트 보기
$ pm2 list
프로세스 관리 - 종료, 재시작, 삭제
$ pm2 stop <app_name|id|'all'|json_conf>
$ pm2 restart <app_name|id|'all'|json_conf>
$ pm2 delete <app_name|id|'all'|json_conf>
프로세스 정보 보기
$ pm2 describe <id|app_name>
cluster 모드
* 클러스터 모드의 경우 아래의 그림이 가장 좋은 표현이라 생각해서 pm2 의 사이트에서 가져 왔습니다.
보통 운영 시 nodejs 가 하나만 실행되어 머신의 성능을 전부 뽑아 내지 못하여 비효율적으로 운영되는데 cluster 모드를 이용하면 아래와 같이 여러 개의 nodejs 가 실행되면서 머신의 성능을 높은 수준까지 끌어낼 수 있습니다.
이미지 : http://pm2.keymetrics.io/docs/usage/cluster-mode/
$ pm2 start app.js -i 0 # 로드벨런스와 cluster 기능을 사용합니다.
PM2 를 이용하여 NodeJS 를 종료 하지 않고 리로드 하기
$ pm2 reload all
PM2 를 이용하여 앱 프로세스 숫자 조절 하기
$ pm2 scale <app_name> <instance_number> # 프로세스 숫자 늘리기 / 줄이기
PM2 를 이용하여 CPU / Memory 모니터링 하기
$ pm2 monit
PM2 실시간 로그 보기 - 실행중인 프로세스의 PM2 의 로그를 볼수 있습니다.
$ pm2 logs ['all'|'PM2'|app_name|app_id] [--err|--out] [--lines ] [--raw] [--timestamp [format]]
$ pm2 logs
$ pm2 logs WEB-API --err
$ pm2 logs all --raw
$ pm2 logs --lines 5
$ pm2 logs --timestamp "HH:mm:ss"
$ pm2 logs WEB-API --lines 0 --timestamp "HH:mm" --out
$ pm2 logs PM2 --timestamp
$ pm2 flush # 모든 로그 삭제하기
pm2 로그관련 추가정보 링크 : http://pm2.keymetrics.io/docs/usage/log-management/
자동시작 스크립트 생성하기 - 간단히 OS 별 자동 시작 스크립트를 만드는 방법 입니다.
$ pm2 startup
# 플렛폼을 적어 주지 않으시면 자동으로 플렛폼을 감지합니다.
$ pm2 startup [platform]
# 플렛폼을 적어주시면 해당 플렛폼 스크립트가 적용
# ubuntu|centos|redhat|gentoo|systemd|darwin|amazon
#프로세스 리스트 저장하기
$ pm2 save
# -u 옵션을 이용하여 자동시작 사용자 지정하기
$ pm2 startup ubuntu -u www-data
각 플렛폼 별로 스크립트 파일및 적용 방법이 다르니 아래의 추가 정보 링크를 참고하시기 바랍니다.
자동시작 관련 추가정보 링크 : http://pm2.keymetrics.io/docs/usage/startup/
PM2 개발자 모드 - Development Mode
PM2 에서 지원하는 개발자 모드를 이용하는 방법 입니다. 파일 변경 및 로그를 실시간으로 보여 주고 파일 변경시 변경을 감지하여 자동으로 재시작 해줍니다.
$ pm2-dev run my-app.js
대략적으로 PM2 사용방법 들에 대해 알아봤습니다.
추가적으로 pm2 에서 자체적으로 웹 gui 형식으로 모니터링을 제공하고 있습니다. 관심 있으신분은 아래의 URL 을 참고 하시면 될 것 같습니다.
즐거운 개발 & 운영 되시기 바랍니다.
'Tips - etc > Ubuntu' 카테고리의 다른 글
Ubuntu 에서 최신 버전 php 설치하기 (1) | 2020.10.04 |
---|---|
Ubuntu 에 최신버전 NginX 설치하기 (0) | 2020.10.04 |
Ubuntu 에 MariaDB 설치하기 (0) | 2020.10.04 |
Ubuntu 18.04 에 ffmpeg 4.x 설치 방법 (0) | 2020.05.25 |
Ubuntu 에서 SFTP 사용시 사용자 폴더에 가두기 (0) | 2020.05.24 |