PM2 설치(Process Manager 2)

PM2(프로세스 매니저 2)



Node.js 기반의 프로세스 관리자 도구.
애플리케이션(Node.js/python/binary/shell script/etc...)을 관리할 수 있는 도구입니다.

특징


  • 요청 시 애플리케이션 시작/중지/다시 시작
  • 여러 프로세스를 쉽게 관리할 수 있음
  • 백그라운드에서 응용 프로그램 실행
  • 로그 및 리소스 사용량 모니터링
  • 소스 코드 변경 또는 실패 시 응용 프로그램 다시 시작
  • 시스템 재부팅 시 시작(서비스)
  • 환경 기반 구성
  • PM2 Plus - 고급 기능(웹 인터페이스, 클러스터 모드 등...)

  • 공식 페이지


  • PM2: https://pm2.keymetrics.io
  • 빠른 시작 안내서: https://pm2.keymetrics.io/docs/usage/quick-start
  • 단일 페이지 가이드: https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page
  • PM2 npm: https://www.npmjs.com/package/pm2
  • PM2 로그로테이트: https://www.npmjs.com/package/pm2-logrotate



  • 전제 조건



  • Node.js

  • [권장] NVM: https://github.com/bybatkhuu/wiki/blob/main/posts/manuals/installs/nvm.md


  • 설치




    # Install PM2 through NPM:
    npm install -g pm2
    
    # Install pm2-logrotate to rotate logs for PM2:
    pm2 install pm2-logrotate
    
    # Check PM2 is running and check the version:
    pm2 ping
    pm2 -v
    


    👍 ✨

    설치 완료




    용법




    ### Run application:
    
    ## Start node.js application in the background:
    pm2 start app.js
    
    ## Start shell script app with naming "script-app":
    pm2 start script.sh -n script-app
    
    ## Start the python application and watch for changes:
    pm2 start python-app.py --watch
    
    ## Start binary file with arguments (--port 8080):
    pm2 start binary-file -- --port 8080
    
    ## Use ecosystem configuration file:
    # Generate a simple ecosystem.config.js file:
    pm2 init simple
    # Update the ecosystem.config.js file according to your needs:
    vi ecosystem.config.js
    # Start ecosystem.config.js:
    pm2 start ecosystem.config.js
    
    ## Or use JSON file and start in the foreground:
    pm2 start pm2-process.json --no-daemon
    
    ## Or use YAML file and specify log file path:
    pm2 start pm2-process.yml --log /path/to/logs
    
    
    ### Check logs:
    pm2 logs app-name --lines 50
    
    
    ### Restart application:
    pm2 restart app-name
    
    
    ### Shows a list of applications registered into PM2:
    pm2 list
    
    
    ### Monitor applications:
    pm2 monit
    
    
    ### Stop and delete the application:
    pm2 stop app-name
    pm2 del app-name
    
    
    ### Generate ecosystem.config.js file:
    pm2 ecosystem
    
    
    ## Startup application on system reboot:
    pm2 startup
    #--------------------------------------------------------------------------------
    ## Run according to shown command!
    # For example:
    # [PM2] You have to run this command as root. Execute the following command:
    #      $ sudo su -c "env PATH=$PATH:/home/user/.nvm/versions/node/v12.20.1/bin pm2 startup <distribution> -u <user> --hp <home-path>"
    #--------------------------------------------------------------------------------
    pm2 save
    
    
    ### Help:
    pm2 --help
    


    PM2 플러스


  • PM2 플러스 개요: https://pm2.io/docs/plus/overview



  • 참조


  • 생태계 파일: https://pm2.keymetrics.io/docs/usage/application-declaration
  • 시작 스크립트: https://pm2.keymetrics.io/docs/usage/startup
  • 로그: https://pm2.keymetrics.io/docs/usage/log-management
  • 모니터링: https://pm2.keymetrics.io/docs/usage/monitoring
  • 맞춤 측정항목: https://pm2.keymetrics.io/docs/usage/process-metrics
  • 클러스터 모드: https://pm2.keymetrics.io/docs/usage/cluster-mode
  • PM2로 Python 스크립트 자동화: https://towardsdatascience.com/automate-your-python-script-with-pm2-463238ea0b65
  • 좋은 웹페이지 즐겨찾기