웹 개발/Javascript

[Node.js] PM2 설치하기(Node.js 백그라운드 실행) 및 사용법

코딩하는흑구 2023. 3. 13. 00:18

안녕하세요.

 

이번 포스팅에서는 PM2를 설치하여 Node.js를 백그라운드로 실행하는 방법을 확인해보겠습니다.

 

현재 저는 kibana 관련 작업중이고요. node.js로 실행할 수 있는 kibana를 백그라운드로 실행하기 위해서 키바나 버전과 호환되는 node를 설치하였고 이를 백에서 실행할 수 있도록 PM2를 설치하고자 합니다.

 

우선 PM2 메인 홈페이지로 이동해주세요.

https://pm2.keymetrics.io/

 

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

 

메인 화면을 보니 현재 페이지에서는 설치해야될 명령어를 알려주고 있습니다.(npm을 사용하면 된다고 하네요.)

우선 npm 명령어를 단독으로 입력해서 npm 명령어를 서버가 인식하는지 확인해주세요.

 

npm은 노드가 설치되어있어야 하니 우선 여러분의 서버에 노드가 없다면 아래의 포스팅을 보시고 따라해주세요.

https://sas-study.tistory.com/499

 

[Node.js] nvm 설치하고 특정 node.js 가져오기

안녕하세요. node js 버전을 관리하는 nvm 을 설치해보겠습니다. nvm은 Node Version Management의 약자로 깃허브 주소는 아래에 있습니다. https://github.com/nvm-sh/nvm GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compli

sas-study.tistory.com

 

그럼 바로 설치해보겠습니다.

- 설치 명령어(npm)

npm install pm2 -g

 

이제 pm2를 통해 Node.js를 백그라운드로 실행해보겠습니다.

 

- pm2 프로세스 시작

pm2 start ${Node.js 파일명}

pm2 start kibana-7.11.1-linux-x86_64/src/cli/cli.js

저의 경우는 pm2가 실행할 노드js 대상이 명령어를 입력하는 디렉토리로부터 위의 디렉토리 구조를 띄고 있습니다.

예쁘장한 화면이 나오면서 status가 online이라고 하네요.

 

kibana를 실행하는 것도 잘 되었습니다.(필자 확인)

 

- pm2 관리 현황

pm2 status

위의 명령어를 통해서는 저렇게 예쁘장한 표로 동일하게 출력해줍니다.

 

종료를 할때는 name 칸에 있는 이름을 입력해주면 됩니다.

 

- pm2 프로세스 종료

pm2 stop cli

 

그런데 한번 등록이 되면 pm2가 이를 자기 메모리 안에서 관리를 하게 됩니다. 이를 제거해보겠습니다.

- pm2 관리대상 제거

pm2 delete cli

 

pm2가 관리하는 name이 보통 node.js 파일명을 기준으로 생성하기 때문에 별도의 alias가 필요할 수 있습니다. 저의 경우 cli.js 파일을 실행하는 것이지만 실상 이 실행파일은 kibana를 실행하는 것이기 때문에 name 칸에 kibana가 나오도록 해보겠습니다.

 

- pm2 실행 name 옵션 지정

pm2 start ${Node.js 파일명} --name ${name}


pm2 start kibana-7.11.1-linux-x86_64/src/cli/cli.js --name kibana

 

name 칸에 kibana가 뜨는 것을 확인할 수 있었습니다.

 

이는 node.js 파일이면 동일하게 적용할 수 있으니 무난하게 실행하실 수 있을 것입니다.

 

감사합니다.