본문 바로가기
웹개발/Node.js

운영서버 백그라운드 실행 pm2 이용

by 코딩에서개발로. 2018. 10. 23.
반응형

1. pm2 설치(ubuntu, Mac)

sudo npm install pm2@latest -g    

 

2. app.js 파일 위치에 myapp.config.js 파일 생성

module.exports = {
apps: [
{
// pm2로 실행한 프로세스 목록에서 이 애플리케이션의 이름으로 지정될 문자열
name: "http://www.domain.co.kr",
// pm2로 실행될 파일 경로
script: "./bin/www",
// 운영환경시 적용될 설정 지정
env: {
"PORT": 3000,
"NODE_ENV": "production"
}
}
]
};

name :  프로세스목록에서 보여질 이름을 지정한다. (도메인으로 하면 좋을듯...)

3. 실행하기

pm2 start myapp.config.js

아래 로그 출력 됨.

[PM2] Spawning PM2 daemon with pm2_home=/home/ubuntu/.pm2

[PM2] PM2 Successfully daemonized

[PM2][WARN] Applications http://www.domain.co.kr not running, starting...

[PM2] App [http://www.domain.co.kr] launched (1 instances)

┌─────────────────────────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬────────┬──────────┐

App name                    id version mode pid   status restart uptime cpu mem       user   watching

├─────────────────────────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼────────┼──────────┤

http://www.domain.co.kr     0.0.0   fork 12614 online 0       0s     0%  23.2 MB   ubuntu disabled

└─────────────────────────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴────────┴──────────┘

 

 Use `pm2 show <id|name>` to get more details about an app

 

4. 중지하기

$ pm2 stop. myapp.config.js

 

[PM2] [http://www.domain.co.kr](0) ✓

┌─────────────────────────────┬────┬─────────┬──────┬─────┬─────────┬─────────┬────────┬─────┬────────┬────────┬──────────┐

App name                    id version mode pid status  restart uptime cpu mem    user   watching

├─────────────────────────────┼────┼─────────┼──────┼─────┼─────────┼─────────┼────────┼─────┼────────┼────────┼──────────┤

http://www.domain.co.kr.     0.0.0   fork 0   stopped 0       0      0%  0 B    ubuntu disabled

└─────────────────────────────┴────┴─────────┴──────┴─────┴─────────┴─────────┴────────┴─────┴────────┴────────┴──────────┘

 

 Use `pm2 show <id|name>` to get more details about an app

 

5. 재시작 하기

$ pm2 restart. myapp.config.js

 

[PM2] Applying action restartProcessId on app [http://www.domain.co.kr](ids: 0)

[PM2] [http://www.domain.co.kr](0) ✓

┌─────────────────────────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬────────┬──────────┐

App name                    id version mode pid   status restart uptime cpu mem       user   watching

├─────────────────────────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼────────┼──────────┤

http://www.domain.co.kr.     0.0.0   fork 12693 online 1       0s     0%  17.7 MB   ubuntu disabled

└─────────────────────────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴────────┴──────────┘

 

 Use `pm2 show <id|name>` to get more details about an app

 

터미널을 종료해도 운영은 계속....

반응형