-
[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
'node.js' 카테고리의 다른 글
[npm] wsl2에서 npm 명령어의 반응이 느림 - 해결! (1) 2022.02.10 [Node.js] http 서버 생성 - http.createServer() 함수 (1) 2022.02.05