ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [npm] pm2 관련 자주쓰는 명령어
    node.js 2022. 2. 4. 22:29

    PM2???

    PM2 is a daemon process manager that will help you manage and keep your application online 24/7

    pm2는 npm에서 설치할 수 있는 패키지로, 우리의 애플리케이션을 모니터링해주는 데몬형식의 프로세스 매니저이다. 

    쉽게 말하면 우리가 node.js에서 실행시키는 프로그램(프로세스)를 관리해주는 툴이라고 볼 수 있다. 

     

    여러 기능들이 있지만, 가장 유용하게 쓰이는 것은 개발할때 코드를 수정할 때마다 node 런타임을 껐다가 다시 켰어야 했는데, 이 pm2는 코드 수정을 감지하고 자동으로 수정된 코드로 다시 프로세스를 실행시켜줘서, 직접 껐다 켰다 할 필요가 없다는 것이다. 

    또, 예기치 않게 프로세스가 종료되었을때, pm2가 자동으로 재시작을 해주기도 한다.

     

    PM2 설치

    npm에서 설치해주면 된다.

    //-g 옵션은 pm2가 독립된 소프트웨어로, 로컬환경 어디서든 실행되도록 한다.
    $ npm install pm2@latest -g

     

    PM2로 프로세스 실행시키기

    // ex) app.js 실행시키기  app.js 대신 본인의 프로그램이 들어가면 됨.
    $ pm2 start app.js
    
    //app.js 실행과 동시에 log 출력
    $ pm2 start app.js --attach
    
    //arguments를 넘겨주면서 app.js 실행 -> -- 사용
    $ pm2 start app.js -- arg1 arg2
    
    //--watch 옵션을 붙이면, 코드를 수정했을때 자동으로 감지하고 프로세스를 재시작한다.
    $ pm2 start app.js --watch

    다음과 같이 main.js를 실행시키면 main이라는 프로세스 name을 자동으로 생성하고 실행시키는 모습이다.

    PM2로 프로세스 중지시키기

    //pm2가 정한 프로세스의 name과 id로 중지 가능
    $ pm2 stop app
    $ pm2 stop [process_id]
    
    //pm2가 관리하는 모든 앱 종료
    $ pm2 stop all
    
    //한번에 여러 프로세스 종료
    $ pm stop app1 app2

     

    프로세스 list 확인하기

    $ pm2 list

     

    프로세스 종료 후 삭제

    //app은 프로세스 name 임
    $ pm2 delete app
    
    //전체 stop 후 삭제
    $ pm2 delete all

     

    PM2 터미널 대시보드, terminal dasboard

    PM2는 구동중인 앱의 리소스 사용량과 상황을 모니터링할 수 있는 대시보드를 제공한다.

    $ pm2 monit

     

JackCokebb dev blog