Process Manager 2
PM2로 불리우는 프로세스매니저는 forever기능과 nodemon의 변경감지 재시작 그리고 클러스트와 로그를 제공한다.
시작하기
기본 사용법
pm2 list┌──────────────┬────┬─────────┬──────┬────────┬─────────┬────────┬─────┬────────────┬──────────┐│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │├──────────────┼────┼─────────┼──────┼────────┼─────────┼────────┼─────┼────────────┼──────────┤│ hanguelhouse │ 0 │ cluster │ 5184 │ online │ 1 │ 4s │ 0% │ 110.6 MB │ disabled │└──────────────┴────┴─────────┴──────┴────────┴─────────┴────────┴─────┴────────────┴──────────┘
현재 실행중인 리스트를 확인할 수 있습니다.
pm2 start <app_name|id|'all'|json_conf>pm2 stop <app_name|id|'all'|json_conf>pm2 restart <app_name|id|'all'|json_conf>pm2 delete <app_name|id|'all'|json_conf>
한번 start로 실행을 할 경우 list에 남아있으므로 다시 start 명령어로 할 필요가 없습니다.
(start 명령어로 할경우 2개의 instance가 실행됩니다)
재시작할경우 pm2 restart를 사용하여주세요.
모니터링 및 로그
pm2 monit
현재 서버에서 실행중인 instace의 cpu 및 메모리 사용량을 확인할 수 있습니다.
$ 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 list//pm2pm2 start app.js // 백그라운드 실행pm2 list //현재 실행중인 리스트 출력pm2 start <app_name|id|'all'|json_conf>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> //프로세스 정보pm2 scale <app_name> <instance_number> // 프로세스 숫자 조절하기(스케일링)pm2 monit //cpu 및 메모리 확인pm2 logs ['all'|'PM2'|app_name|app_id] [--err|--out] [--lines ] [--raw] [--timestamp [format]] //실시간 원격 로그 스트리밍
현재 에러나 내용 자세히
몇번 재시작 되는지도 확인 가능
pm2 desc <app_name|id|'all'|json_conf>
특정 로그만 출력 가능
$ pm2 logs$ pm2 logs WEB-API --err //web-api 에러만 출력$ pm2 logs all --raw //전체 모든 에러 출력$ pm2 logs --lines 5 //5줄만 출력$ pm2 logs --timestamp "HH:mm:ss" //특정 시간 로그만 보기$ pm2 logs WEB-API --lines 0 --timestamp "HH:mm" --out$ pm2 logs PM2 --timestamp$ pm2 flush # 모든 로그 삭제하기