PM2 명령어, ecosystem

김상선·2022년 6월 18일
0

pm2 명령어

pm2 설치 전 터미널 관리자 계정 진입 : sudo -s

설치 : npm install pm2 -g

실행 : pm2 start <실행시킬 서버.js>

리스트 확인 : pm2 list

중지 : pm2 stop <app_name>

재시작 : pm2 restart <app_name>

삭제 : pm2 delete <app_name>

현재 pm2 앱 목록 저장 : pm2 save

저장된 앱 목록 복구(dump) : pm2 resurrect

pm2 start app.js --watch

  • 실행할 js파일을 --watch 옵션으로 실행하면 소스 수정후 저장하면 자동으로 node를 재시작해줘서 소스적용이 된다.

pm2 start app.js --watch --no-daemon

  • 백그라운드로 실행되는 프로그램을 데몬이라고 부릅니다. nodaemon을 치면 백그라운드 실행이 아니라서 실행 후 바로 log를 볼 수 있게 됩니다.

pm2 start app.js --watch --ignore-watch="(파일경로)" --no-daemon

  • 이렇게 실행할 경우 해당 파일경로에 파일들이 수정될 때는 서버가 재시작하지 않는다.

출처: https://dydals5678.tistory.com/100 [아빠개발자의 노트:티스토리]

환경변수

PM2로 여러 개의 앱을 실행하고 관리할 때 스크립트 파일로 저장해서 목록을 관리할 수 있다.
ecsystem.config.js 파일을 원하는 곳에 생성한 후 앱의 이름, 경로, 환경변수들을 설정해둔다.
pm2로 ecosystem.config.js 파일을 실행하면 스크립트 내용 그대로 실행되며, 앱들을 편하게 관리할 수 있다.
pm2 start ecosystem.config.js

// ecosystem.config.js
module.exports = {
  apps : [
      {
        name: "myapp", // 실행할 앱의 이름
        script: "./app.js", // pm2로 시작할 파일의 상대 경로
        watch: true, // 파일 변경 모니터링, 파일 변동시 재시작
        cwd : "./app" // 앱이 실행될 디렉토리 (환경변수 파일이 앱과 다른 디렉토리에 있을 때)
        env: {
            "PORT": 3000,
            "NODE_ENV": "development"
        },
        env_production: {
            "PORT": 80,
            "NODE_ENV": "production",
        }
      },
      {
        name: "anotherapp",
        ...
      }
  ]
}
profile
일요일을 좋아합니다.

0개의 댓글