Programming/Node.js

Node.js :: PM2 기본 간단 정리

고고마코드 2022. 5. 30. 17:52
반응형

PM2 를 활용하여 Node.js 서비스하기
추가 설명 없이 간단하게 정리한 것이므로 자세한 설명을 원한다면 가장 하단의 References 의 블로그를 참조하시기 바랍니다.


PM2 설치하기

Node.js 가 설치되어 있다는 가정 하에 진행합니다.

Node.js 의 패키지 매니저인 npm으로 PM2 를 설치합니다.

> npm install pm2@latest -g

https://pm2.keymetrics.io/


예시 애플리케이션 파일 준비

var http = require('http');
var url = require('url');

var app = http.createServer(function(request,response){
    var _url = request.url;
    var queryData = url.parse(_url, true).query;

    response.writeHead(200);
    response.end('main2');
});
app.listen(3000);

PM2 사용방법

서비스 시작

> PM2 start main2.js

저는 main 도 실행한 기록이 있어서 main과 main2 가 모두 나오고 있습니다.

status 는 서비스 상태를 뜻하며, online 인 경우 서비스중을 나타냅니다.

name 은 해당 서비스의 이름입니다.

서비스 종료

> PM2 stop main2.js

main2.js 서비스를 종료합니다.

> PM2 kill

pm2로 실행시긴 모든 서비스를 종료합니다.

서비스 목록 & 상태

> PM2 list

서비스 시작

--watch 옵션은 서비스 영역에 변경이 생겼을 경우 PM2가 실행한 서비스가 껐다 켜지면서 해당 내용을 반영합니다.

> PM2 start main2.js --watch

무중단 서비스를 시작한 후 main2.js 에 코드를 변경한 후 새로고침을 하면 결과가 바로바로 바뀌는 것을 확인할 수 있습니다.

> PM2 start main2.js --watch --no-daemon

무중단 서비스 시작 후 코드 변경 내역을 터미널에서 확인하고 싶다면 --no-daemon 옵션을 통해 확인할 수 있습니다.

서비스 테스트

var http = require('http');
var url = require('url');

var app = http.createServer(function(request,response){
    var _url = request.url;
    var queryData = url.parse(_url, true).query;

    response.writeHead(200);
    response.end('main3'); // 숫자를 변경하며 테스트 해보기
});
app.listen(3000);

서비스 로그 보기

> PM2 log

만약 --no-daemon 옵션을 주지 않았다면, 터미널에서 곧바로 로그를 확인할 수 없습니다.

PM2 log 를 통해 서비스 중인 애플리케이션의 로그를 볼 수 있습니다.


참고자료

  1. engineering.linecorp.com

반응형