sudo npm i -g pm2
package.json 스크립트
"scripts": {
"start": "NODE_ENV=production PORT=80 pm2 start server.js -i 0",
// 뒤에 -i 0 붙이면 CPU 코어 개수만큼 프로세스 생성
// -i -1 이면 CPU 갯수보다 1개 작은 수만 큼 생성 (fs, crypto와 같은 내장 모듈 실행할 수 있도록 풀어줌)
// 어떤 것이 성능이 좋을지에 대해서는 테스트를 통해 확인해보기
npm start
개발 환경의 경우 local 에서 80번 포트를 쓰고 있기 때문에 에러날 확률 높음
aws 서버에서는 80번 포트 열기
💡 로컬에서 pm2 사용 시 전역 명령어인 npx 붙여주기
ex) npx pm2 start server.js
npx pm2 list
재시작 횟수가 많다면 에러가 있을 수 있다고 생각해 봐야함
리눅스나 맥의 경우 앞에 sudo를 붙여줘야할 수 있음
npx pm2 kill
pm2 서버 종료시키기
npx pm2 reload all
현재 모든 서버들 재시작하기
npx pm2 monit
서버 별 실시간 로그 파악하기
pm2 logs --err
과거 에러 로그들 파악
pm2 start main.js --no-daemon
console.log 출력
pm2로 서버 실행 시 파일이 추가, 수정될 때 변경사항이 감지되어 서버가 꺼졌다가 재시작이 된다.
그래서 이미지파일 등이 업로드 되거나, 데이터(세션- passport)가 추가, 수정될 때 이를 pm2가 무시하도록 설정해야 함
data, sessions 폴더 안에 있는 파일 변경사항은 pm2가 감지하지 않도록 설정
pm2 start main.js --watch --ignore-watch="data/* sessions/*" --no-daemon