본문 바로가기

Back-End/Node.js

Node.js.29.Node.js의 패키지 매니저와 PM2

반응형

Package Manager 

  • Package: =소프트웨어. 
  • 소프트웨어들을 생성, 설치, 업데이트, 관리, 삭제해주는 프로그램
  • 운영체제마다 중요한 역할을 함

 

NPM

  • Nodejs에서 가장 광범위하게 사용하는 PM
  • 파일(코드)이 수정될 때마다 자동으로 프로그램을 껐다켜줌 (이전에는 일일이 귀찮게 껐다켜줬었음)
 

PM2 - Home

Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance.

pm2.keymetrics.io

Advanced, production process manager for Node.js

: Nodejs로 만든 웹 프로그램 매니저

 

터미널을 관리자 권한으로 실행한 후 npm install pm2 -g 를 입력하여 pm2를 설치한다.

하지만 나의 경우 설치할 때 에러가 났다. window에서 설치할 때에만 에러가 발생한다. 하지만 이는 에러가 아니라 경고일 뿐이니 걱정말라!

 

설치 후 실행해보았으나 다음과 같은 이유로 실행이 되지 않았다. 이 문제는 아래 사이트를 통해 해결했다.

 

pm2 powershell에서 실행안될때

error message webpack : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\shimk\AppData\Roaming\npm\webpack.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(ht..

ms3864.tistory.com

1. 관리자 권한으로 실행

2. Get-ExecutionPolicy

3. RemoteSigned가 뜨지 않으면 Set-ExecutionPolicy RemoteSigned

-> 아마 Restricted 라고 뜰 것이다.

4. Get-ExecutionPolicy를 입력하여 RemoteSigned로 변경되었는지 확인

그 후 입력하면 잘 실행된다! 짝짝! 신기해!

- name: 실행 중인 main.js의 별명

- status: online(실행중)

웹 사이트에 다시 접속해보자! http://localhost:3000/

이전과 똑같이 동작한다

 

PM2 - 1.Monitoring

pm2 monit

현재 PM2에 의해 실행되고 있는 프로그램들을 볼 수 있다.

main.js 프로그램을 종료하면 바로 종료되었다고 오른쪽에 뜨며 반응한다. (강의에선 프로세스를 종료시켰는데 windows에서는 어떻게 하는지 모르겠다. 작업 관리자>프로세스에 안뜨던데..ㅠㅠ)

나가고 싶을 때는 q버튼을 누르면 된다.

 

PM2 - 2.Microservice

pm2 list

현재 실행중인 프로세스의 리스트를 보고 싶을 때

 

PM2 - 3.프로세스 종료

pm2 list를 통해 현재 실행 중인 프로세스의 리스트를 보고 종료하고 싶은 프로세스를 main으로 확인한 후

pm2 stop 프로세스명

입력하면 프로세스가 아래와 같이 종료된다

main이 꺼지면서 stopped된다

 


pm2 start 프로세스명 --watch

이제 코드를 수정한 후 리로드하면 이제 바로 반영된다! 대박대박 맨날 수정한 후 껐다켜지 않아도 된다

 

 

PM2 - 4.에러 보기

하지만 이렇게 하면 문제도 발생한다.

node main.js 를 입력한 경우 코드에 에러가 있으면 에러를 보여주지만, 이 경우는 코드 에러가 나타나지 않는다.

pm2를 사용하면서 어떤 에러가 있는지 보고 싶다면 

pm2 log 를 입력하면 현재 발생한 문제들을 바로 보여준다.

반응형