개요
nodejs 서비스는 에러가 나면 스크립트가 종료 되는 이슈가 있기에 process 관리를 위한 pm2를 이용한다
또한 pm2는 cpu 코어수 만큼 nodejs를 멀티프로세스로 서비스 할 수있기도 하다 알아보자
설치
$ sudo npm install pm2@latest -g
최신버전 pm2 패키지를 글로벌로 설치
실행
$ pm2 start dist/main.js --name projectName
pm2 start 구문과 함께 실행할 스크립트 경로
패치
$ pm2 reload projectName
명령어
pm2 list : 실행중인 프로세스 목록 확인 pm2 status : 실행중인 프로세스 상태 확인 pm2 kill : 모든 프로세스 없애기 pm2 start [applicationName]: 프로세스 실행 pm2 stop [applicationName] : 실행중인 프로세스 중지 pm2 delete [applicationName] : 프로젝트 삭제 pm2 restart [applicationName] : 실행중인 프로세스 재시작 ( 프로세스 kill 후 재실행 ) pm2 reload [applicationName]: 실행중인 프로세스 리로드 ( 프로세스 kill 하지 않고 적용 ) pm2 log : 작업중인 로그 실시간 확인 pm2 monit: 메모리 / CPU 사용량 확인
pm2 list
name - project name 을 따로 지정안하고 시작하니 파일명인 main 으로 시작해주는거 같네?
namespace - default ( 이건 뭐지 나중에 알아보고)
version - package.json 의 버전
mode - fork
pid - 프로세스 id
uptime - 62m
status - online 활성화 중
cpu - 0$ cpu 사용량
mem - 95.5mb 메모리 사용량
user - root 사용자
pm2 status
list 랑 같은 화면 제공..?
pm2 log
실제 스크립트 실행시 터미널에 주르륵 하고 뜨던것들을 그대로 찍어준다
pm2 monitor
pm2 list의 항목들을 조금더 직관적으로 그리고 실시간으로 보여준다
api 하나 호출하면 로그도 바로나온다
바로 동기화 되지는 않는거 같고 한 3~4초 걸리는것 같네