PM2로 nodejs 응용 프로그램 시작하기

7111 단어 Node.jspm2
forever를 사용해 봤는데 pm2의 기능이 더 높다고 해서 사용해 봤어요.

PM2 설치


글로벌 설치
npm i -g pm2
pm2 명령이 인식되면 설치할 수 있습니다

PM2를 사용하여 애플리케이션 시작


간단하게 js를 시작하면pm2 start.
pm2 start jsファイル
js 파일을 지정할 수 있지만 --name 이름이 있는 스크립트를 시작하면 편리합니다.
아니면 이름이 없으면 조작이 너무 불편해서 꼭 필요하다고 생각해요.
파일 이름은main입니다.만약 js라면pm2list에 응용 목록을 표시할 때main입니다."이게 무슨 앱이었지?"그렇기 때문이다.
이번에 Slack-bot이라는 응용프로그램명으로pm2를 시작합니다.
$ pm2 start main.js --name slack-bot

[PM2] Starting /home/pi/dev/slack-bot/main.js in fork_mode (1 instance)
[PM2] Done.
┌───────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name  │ id │ mode │ pid  │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├───────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ slack-bot │ 0  │ fork │ 1432 │ online │ 0       │ 0s     │ 12% │ 20.0 MB   │ pi   │ disabled │
└───────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
status가 online로 바뀌었기 때문에 시작 중입니다.

재부팅

pm2 restart アプリ名
$ pm2 restart slack-bot
Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [slack-bot](ids: 0)
[PM2] [slack-bot](0) ✓
┌───────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name  │ id │ mode │ pid  │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├───────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ slack-bot │ 0  │ fork │ 1480 │ online │ 1       │ 0s     │ 66% │ 15.1 MB   │ pi   │ disabled │
└───────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
pid가 바뀌어서 다시 시작한 것 같아요.

정지하다


pm2 stop 응용 프로그램 이름
$ pm2 stop slack-bot
[PM2] Applying action stopProcessId on app [slack-bot](ids: 0)
[PM2] [slack-bot](0) ✓
┌───────────┬────┬──────┬─────┬─────────┬─────────┬────────┬─────┬────────┬──────┬──────────┐
│ App name  │ id │ mode │ pid │ status  │ restart │ uptime │ cpu │ mem    │ user │ watching │
├───────────┼────┼──────┼─────┼─────────┼─────────┼────────┼─────┼────────┼──────┼──────────┤
│ slack-bot │ 0  │ fork │ 0   │ stopped │ 1       │ 0      │ 0%  │ 0 B    │ pi   │ disabled │
└───────────┴────┴──────┴─────┴─────────┴─────────┴────────┴─────┴────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
status가 stoped라서 멈춘 것 같아요.

로그 보기


응용 프로그램 이름
 $ pm2 logs slack-bot
[TAILING] Tailing last 15 lines for [slack-bot] process (change the value with --lines option)
/home/pi/.pm2/logs/slack-bot-error-0.log last 15 lines:
...
기본적으로 15행만 표시되므로 표시 행 수를 늘리면 더 쉽게 볼 수 있습니다.
pm2 logs slack-bot --lines 50

로그 삭제

pm2 flush

애플리케이션 상태 보기

pm2 show アプリ名응용 프로그램의 상태/경로/버전을 볼 수 있습니다.
┌───────────────────┬─────────────────────────────────────────────────────────────┐
│ status            │ online                                                      │
│ name              │ slack-bot                                             │
│ restarts          │ 2                                                           │
│ uptime            │ 3h                                                          │
│ script path       │ /home/pi/dev/slack-bot/receptionist.js                │
│ script args       │ token=xoxb-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx                  │
│ error log path    │ /home/pi/.pm2/logs/slack-bot-error-0.log              │
│ out log path      │ /home/pi/.pm2/logs/slack-bot-out-0.log                │
│ pid path          │ /home/pi/.pm2/pids/slack-bot-0.pid                    │
│ interpreter       │ node                                                        │
│ interpreter args  │ N/A                                                         │
│ script id         │ 0                                                           │
│ exec cwd          │ /home/pi/dev/slack-bot                                │
│ exec mode         │ fork_mode                                                   │
│ node.js version   │ 10.4.1                                                      │
│ watch & reload    │ ✔                                                           │
│ unstable restarts │ 0                                                           │
│ created at        │ 2018-11-19T02:17:46.158Z                                    │
└───────────────────┴─────────────────────────────────────────────────────────────┘
 Code metrics value
┌─────────────────┬────────┐
│ Loop delay      │ 1.49ms │
│ Active requests │ 0      │
│ Active handles  │ 5      │
└─────────────────┴────────┘

모니터링 애플리케이션


부팅된 애플리케이션의 CPU 사용률, 메모리 사용량, 순환 지연, 요청/분 을 확인할 수 있습니다.
pm2 monit
예쁘고 잘생겼어요.

PM2 플러스 서비스가 있어 온라인에서 대시보드 정보를 볼 수 있다.(자세한 내용은 확인되지 않음)
https://pm2.io/doc/en/plus/quick-start/

프로파일을 사용하여 지정 시작


Yaml 및 Json을 사용하여 시작 옵션을 설정 파일로 정의할 수 있습니다.
이번엔 야멜로 만들어 볼게요.
# ファイル名:pm2config.yml(ファイル名は自由です)

name: slack-bot                        # アプリ名
script: main.js                        # スクリプトファイルパス
watch: true                            # フォルダやサブフォルダ内のファイルが変更された場合、アプリは再読み込みされます
log-date-format: "YYYY-MM-DD HH:mm Z"  # ログに日付を追加

프로필에 사용할 수 있는 항목 링크는 다음과 같습니다
https://pm2.io/doc/en/runtime/reference/ecosystem-file/#apps-options
구성 파일에서 시작
pm2 start pm2.yml
pm2 stop pm2.yml
pm2 restart pm2.yml

참조 링크

  • [Node.js] PM2를 사용하여 공식 환경에서 NodeJS 응용 프로그램 - YoheiM을 실행합니다.NET
  • PM2 - Process File
  • 좋은 웹페이지 즐겨찾기