Express 앱용 프로세스 관리자

프로덕션 환경을 위한 Express를 실행할 때 프로세스 관리자를 사용하면 다음과 같은 태스크를 달성하는 데 도움이 됩니다.

  • 앱에서 충돌이 발생할 경우 앱을 자동으로 다시 시작.
  • 런타임 성능 및 자원 소비에 대한 통찰력을 획득.
  • 성능 향상을 위해 설정을 동적으로 수정.
  • 클러스터링을 제어.

프로세스 관리자는 애플리케이션 서버와 약간 비슷합니다. 프로세스 관리자는 애플리케이션을 위한 “컨테이너”이며, 배치 작업을 용이하게 하고, 높은 가용성을 제공하고, 런타임 시에 애플리케이션을 관리할 수 있도록 합니다.

가장 널리 사용되는 Express 및 기타 Node.js 애플리케이션용 프로세스 관리자는 다음과 같습니다.

이 세 가지 도구 중 어느 것을 사용해도 큰 도움이 될 수 있지만, StrongLoop Process Manager는 Node.js 애플리케이션 라이프사이클 전체를 처리하는 포괄적인 런타임 및 배치 솔루션과 프로덕션의 이전과 이후의 모든 단계에 대한 툴링을 통합 인터페이스를 통해 제공하는 유일한 도구입니다.

아래에서는 이 세 가지 도구를 각각 간략히 살펴보겠습니다. 이 도구들에 대한 상세한 비교를 확인하려면 http://strong-pm.io/compare/를 참조하십시오.

StrongLoop Process Manager

StrongLoop Process Manager(StrongLoop PM)는 Node.js 애플리케이션용 프로덕션 프로세스 관리자입니다. StrongLoop PM에는 기본 제공 로드 밸런싱, 모니터링, 멀티호스트 배치 및 그래픽 콘솔이 포함되어 있습니다. StrongLoop PM은 다음과 같은 태스크에 사용할 수 있습니다.

  • Node.js 애플리케이션을 빌드 및 패키징한 후 로컬 또는 원격 시스템에 배치.
  • CPU 프로파일 및 힙 스냅샷을 확인하여 성능을 최적화하고 메모리 누수를 진단.
  • 프로세스 및 클러스터를 항상 작동 상태로 유지.
  • 애플리케이션에 대한 성능 지표를 확인.
  • Nginx 통합을 통해 멀티호스트 배치를 쉽게 관리.
  • 여러 StrongLoop PM을 분산형 마이크로서비스 런타임으로 통합한 후 Arc를 통해 관리.

slc라는 강력한 명령행 인터페이스 도구 또는 Arc라는 그래픽 도구를 이용해 StrongLoop PM에 대한 작업을 실행할 수 있습니다. Arc는 오픈 소스 방식이며, StrongLoop에서 전문적인 지원을 제공합니다.

자세한 정보는 http://strong-pm.io/를 참조하십시오.

전체 문서:

설치


$ [sudo] npm install -g strongloop

기본적인 사용


$ cd my-app
$ slc start

Process Manager 및 배치된 모든 앱의 상태를 확인:


$ slc ctl
Service ID: 1
Service Name: my-app
Environment variables:
  No environment variables defined
Instances:
    Version  Agent version  Cluster size
     4.1.13      1.5.14           4
Processes:
        ID      PID   WID  Listening Ports  Tracking objects?  CPU profiling?
    1.1.57692  57692   0
    1.1.57693  57693   1     0.0.0.0:3001
    1.1.57694  57694   2     0.0.0.0:3001
    1.1.57695  57695   3     0.0.0.0:3001
    1.1.57696  57696   4     0.0.0.0:3001

관리 중인 모든 앱(서비스)의 목록을 표시:


$ slc ctl ls
Id          Name         Scale
 1          my-app       1

앱을 중지:


$ slc ctl stop my-app

앱을 다시 시작:


$ slc ctl restart my-app

또한 작업자 프로세스에게 기존의 연결을 닫은 후 현재의 애플리케이션을 다시 시작할 수 있는 유예 기간을 제공하는 “소프트 다시 시작”을 다음과 같이 구현할 수 있습니다.


$ slc ctl soft-restart my-app

관리 대상에서 앱을 제거:


$ slc ctl remove my-app

PM2

PM2는 Node.js 애플리케이션용 프로덕션 프로세스 관리자이며, 여기에는 기본 제공 로드 밸런서가 포함되어 있습니다. PM2를 이용하면 앱을 항상 작동 상태로 유지하고, 시스템 가동 중단 없이 앱을 다시 로드할 수 있으며, 일반적인 시스템 관리 태스크를 쉽게 처리할 수 있습니다. 또한 PM2를 이용하면 애플리케이션 로깅, 모니터링 및 클러스터링을 관리할 수 있습니다.

자세한 정보는 https://github.com/Unitech/pm2를 참조하십시오.

설치


$ [sudo] npm install pm2 -g

기본적인 사용

pm2 명령을 이용해 앱을 시작할 때는 앱의 경로를 지정해야 합니다. 그러나 앱을 중지하거나, 다시 시작하거나, 삭제할 때는 앱의 이름 또는 ID만 지정할 수 있습니다.


$ pm2 start app.js
[PM2] restartProcessId process id 0
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ my-app   │ 0  │ fork │ 64029 │ online │ 1       │ 0s     │ 17.816 MB   │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
 Use the `pm2 show <id|name>` command to get more details about an app.

pm2 명령을 이용해 앱을 시작할 때, 앱은 즉시 백그라운드로 보내집니다. 다양한 pm2 명령을 이용하면 명령행을 통해 백그라운드 앱을 제어할 수 있습니다.

pm2 명령을 이용해 앱을 시작하면, 앱은 PM2의 프로세스 목록에 ID와 함께 등록됩니다. 따라서 시스템의 서로 다른 디렉토리에 있는 동일한 이름의 앱을 각 앱의 ID를 이용해 관리할 수 있습니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

동일한 이름의 앱이 2개 이상 실행되고 있는 경우, pm2 명령은 동일한 이름의 앱 모두에 영향을 미친다는 점을 참고하십시오. 그러므로 개개의 앱을 관리하려면 이름 대신 ID를 사용하십시오.

실행 중인 모든 프로세스의 목록을 표시:


$ pm2 list

앱을 중지:


$ pm2 stop 0

앱을 다시 시작:


$ pm2 restart 0

앱에 대한 상세 정보를 확인:


$ pm2 show 0

PM2의 레지스트리에서 앱을 제거:


$ pm2 delete 0

Forever

Forever는 주어진 스크립트가 지속적으로(영원히) 실행되도록 하는 간단한 명령행 인터페이스 도구입니다. Forever는 간단한 인터페이스를 갖추고 있으므로 소규모 배치의 Node.js 앱 및 스크립트를 실행하는 데 가장 적합합니다.

자세한 정보는 https://github.com/foreverjs/forever를 참조하십시오.

설치


$ [sudo] npm install forever -g

기본적인 사용

스크립트를 시작하려면 forever start 명령을 이용해 해당 스크립트의 경로를 다음과 같이 지정하십시오.


$ forever start script.js

이 명령은 디먼 모드에서(백그라운드에서) 해당 스크립트를 실행합니다.

터미널에 연결되도록 스크립트를 실행하려면 다음과 같이 start를 생략하십시오.


$ forever script.js

로깅 옵션인 -l-o 및 -e를 이용해 Forever 도구 및 스크립트의 출력을 로깅하는 것은 좋은 생각이며, 아래에는 이에 대한 예가 표시되어 있습니다.


$ forever start -l forever.log -o out.log -e err.log script.js

Forever를 통해 시작된 스크립트의 목록을 확인:


$ forever list

Forever를 통해 시작된 스크립트를 중지하려면 forever stop 명령을 이용해 프로세스 인덱스를 지정하십시오(인덱스는 forever list 명령을 통해 표시되는 목록을 참조).


$ forever stop 1

대안적으로, 다음과 같이 파일의 경로를 지정할 수 있습니다.


$ forever stop script.js

Forever를 통해 시작된 모든 스크립트를 중지:


$ forever stopall

Forever에는 더 많은 옵션이 있으며 프로그래밍 방식의 API 또한 제공합니다.

 

[출처] http://expressjs.com/ko/advanced/pm.html

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
267 WebAssembly - hello world 어셈블리를 브라우저에 올려보자 file 졸리운_곰 2018.12.01 13
266 .자바스크립트 문자열 다루기 졸리운_곰 2018.11.19 132
265 Embedding Shiny Graphics into a WordPress Post 졸리운_곰 2018.11.18 89
264 익스플로러 호환성 보기 해제 meta tag <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 졸리운_곰 2018.11.06 222
263 서버 사이드 렌더링 그리고 클라이언트 사이드 렌더링 file 졸리운_곰 2018.11.02 227
262 AWS Certified Solutions Architect - Associate 2018 후기 file 졸리운_곰 2018.10.31 73
261 AWS 자격증 준비하기 file 졸리운_곰 2018.10.31 253
260 AWS 자격증 (아키텍트) 준비요령 file 졸리운_곰 2018.10.31 182
259 AWS Certified Solutions Architect – Associate Exam 시험 후기 file 졸리운_곰 2018.10.31 150
258 underscore.js로 편해지자 졸리운_곰 2018.10.16 24
» Express 앱용 프로세스 관리자 졸리운_곰 2018.10.16 62
256 [vue.js] eclipse에서 vue.js 시작하기 file 졸리운_곰 2018.09.18 669
255 카드형 디자인/갤러리/리스트 코딩하기. file 졸리운_곰 2018.09.06 86
254 jquery json에서 null 값 삭제 졸리운_곰 2018.09.05 53
253 jquery .append(Html). 에서 claas 적용 졸리운_곰 2018.09.05 44
252 JavaScript / Method / .split() – 문자열 분할하는 속성 file 졸리운_곰 2018.09.05 51
251 Javascript - 문자열에서 큰 따옴표를 제거하고 싶습니다. 졸리운_곰 2018.09.05 135
250 [JavaScript] Object.keys, json Object 반복문 돌리기 for...in 문 졸리운_곰 2018.09.05 45
249 javascript JSON Object의 key 개수(length) 구하기. 졸리운_곰 2018.09.05 35
248 jQuery Mobile Form Example file 졸리운_곰 2018.09.04 57
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED