본문 바로가기
nodejs

[node.js]Supervisor로 웹서버 자동 재시작하기

by jinbro 2017. 5. 15.
[Supervisor의 역할]
- static 디렉토리 내에 있는 이미지, 자바스크립트 등 파일은 수정하면 바로 반영됨
- 그러나 그외 웹서버 관련 자바스크립트 파일은 수정을 해도 바로 반영되지않음, 서버 재시작을 해야함
- Supervisor는 ctrl+c를 통해 웹서버 구동을 껐다가 다시 시작하는 행동을 개발자가 직접하지않아도 자동으로 하게끔 함
- 사무 자동화랄까?


[Supervisor 설치 및 실행]
- Supervisor는 npm을 통해서 설치함

1) npm install supervisor -g 

- 슈퍼바이저를 설치하는데, 서버컴퓨터 전역에서 사용할 수 있도록 -g (옵션값)을 달아줌(어떠한 프로젝트간에 사용가능)

- permission denied가 뜨면 sudo를 붙여 루트 권한으로 설치해줌

2) supervisor를 통해 restart 시킬 app.js(프로젝트 총괄 파일)이 있는 프로젝트 디렉토리로 가기

3) package.json 파일 수정 : scripts 객체 내 start 속성 node에서 supervisor로 변경
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "name""myproject",
  "version""0.0.0",
  "private"true,
  "scripts": {
    "start""supervisor ./bin/www"
  },
  "dependencies": {
    "body-parser""~1.17.1",
    "cookie-parser""~1.4.3",
    "debug""~2.6.3",
    "ejs""~2.5.6",
    "express""~4.15.2",
    "morgan""~1.8.1",
    "serve-favicon""~2.4.2"
  }
}
cs

4) 수정 후 DEBUG=myapp:* npm start 로 똑같이 실행
- ejs 파일 수정 후 바로 새고로침 해보기 : 웹서버 재시작 없이
- 수정되어있을 것

0) supervisor -h : 해당 명령어를 통해 supervisor로 설정할 수 있는 옵션값 설명을 볼 수 있음
- 슈퍼바이저의 역할은 js 파일을 watch 했다가 변경되면 바로 재시작해주는 일을 하기도 하지만 다양하게 사용할 수 있음


[참고자료]
1) npm supervisor 소개 : https://www.npmjs.com/package/supervisor

2) 생활코딩 supervisor : https://opentutorials.org/course/2136/11951




댓글