리눅스 pm2

From CS Wiki
Node.js 프로세스 관리 도구

리눅스에서 Node.js 프로그램을 데몬으로 구동하기 위한 프로세스 관리 도구

설치[edit | edit source]

  • 명령어로 사용되어야 하므로 npm -g를 이용해 전역으로 설치한다.
$ npm install pm2 -g
$ pm2 version
1.0.1

사용법[edit | edit source]

프로세스 실행[edit | edit source]

  • node 프로세스를 데몬으로 실행한다.
$ pm2 start app.js
[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
[PM2] Starting app.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid  │ status │ restart │ uptime │ memory      │ watching │
├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ app      │ 0  │ fork │ 4004 │ online │ 0       │ 0s     │ 14.492 MB   │ disabled │
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

실행중인 프로세스 보기[edit | edit source]

$ pm2 list
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ example  │ 0  │ fork │ 41402 │ online │ 0       │ 71s    │ 34.754 MB   │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

프로세스 상세 내용 보기[edit | edit source]

$ pm2 show example
Describing process with id 0 - name example
┌───────────────────┬───────────────────────────────────────────────┐
│ status            │ online                                        │
│ name              │ example                                       │
│ node.js version   │ 4.3.0                                         │
│ id                │ 0                                             │
│ path              │ /Users/outsider/temp/app.js                   │
│ args              │ N/A                                           │
│ exec cwd          │ /Users/outsider/temp                          │
│ error log path    │ /Users/outsider/.pm2/logs/example-error-0.log │
│ out log path      │ /Users/outsider/.pm2/logs/example-out-0.log   │
│ pid path          │ /Users/outsider/.pm2/pids/example-0.pid       │
│ mode              │ fork_mode                                     │
│ node v8 arguments │ N/A                                           │
│ watch & reload    │ ✘                                             │
│ interpreter       │ node                                          │
│ restarts          │ 0                                             │
│ unstable restarts │ 0                                             │
│ uptime            │ 3m                                            │
│ created at        │ 2016-02-21T13:41:59.371Z                      │
└───────────────────┴───────────────────────────────────────────────┘
Process configuration

Probes value
┌────────────┬────────┐
│ Loop delay │ 0.92ms │
└────────────┴────────┘

부팅 시 실행되게 하기[edit | edit source]

자동 실행 등록[edit | edit source]

  • pm2 startup 명령어 파악
$ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd
 -u  --hp /home/node
  • 복사/붙여넣기 하라고 나오는 명령줄 (sudo env...)를 그대로 복사해서 실행
$ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd
 -u  --hp /home/node
  • 성공 메시지 확인

자동 실행 해제[edit | edit source]

  • pm2 unstartup 를 통해 동일하게 가이드 따라 수행
$ pm2 unstartup