ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서버 실행 - supervisor, forever, pm2
    Web/Node.js 2018. 7. 23. 01:34
    반응형

    Node.js 파일 실행시

    $node [파일명] 이었다.


    하지만, 이렇게 실행하면 코드 변경시나 터미널 종료시 서버도 종료되는 단점이 있다.


    이걸 보완하기 위해 supervisor라는 패키지를 설치한다.


    $npm install -g supervisor


    -g를 이용해서 유닉스계열에서 설치 할때는 관리자 권한으로 설치해야 하기때문에 sudo su를 이용한다.


    supervisor의 사용법은 


    $supervisor [파일명] 이다.


    파일이 수정되면 알아서 수정이 된다.


    재시작 되는 동안은 일시적으로 서버가 꺼지기때문에 일시적으로 응답을 못할 수 있다.


    html이나 css는 자체적으로 제공이되는 경우가 많아서 ***  JS파일의 변경만 감지한다.   ***



    또 다른 패키지도 있다.


    forever는 서버를 백그라운드로 실행시켜 주는 도구다. 터미널을 종료해도 서버가 돌게 해준다.


    마찬가지로 npm을 이용해서 설치한다.


    $npm install -g forever


    사용법은 크게 3가지다.


    $forever start [파일명]  - 서버 백그라운드로 시작

    $forever stop [숫자]     - 백그라운드에서 돌고있는 서버 종료

    $forever restart [숫자]   - 백그라운드에서 돌고있는 서버 재시작


    $forever list 를 이용하면 백그라운드에 등록한 서버를 확인할 수 있다.

    uptime은 해당 서버의 동작  시간이다. 문제가 발생하면 STOPPED가 표시 된다.

    logfile은 에러문구가 출력되는 위치다.


    좌측에 나오는 [숫자]의 번호를 가지고 종료와 재시작을 이용할 수 있다.


    이미 사용중인 포트가 있다면 등록은 되지만 죽은 상태로 표시가 된다.




    pm2는 forever와 마찬가지로 백그라운드로 등록해주는 도구다.


    $npm install -g pm2@latest // @latest는 마지막 버전을 의미한다.


    서버가 하나만 떠있을때 해당 서버가 죽으면 이용을 할 수가 없다.


    클러스터링(분산)을 이용하면 하나의 서버를 여러 대 띄워 서비스할 수 있다.


    start, stop 을 사용하고, delete, show가 있다.


    stop을 하면 종료하지 않고, 멈추고 start로 재시작이 가능하다.


    show는 서버의 상세 정보를 확인할 수 있다.


    $pm2 start [파일명] - 서버시작


    $pm2 stop [숫자] - 서버 종료

    $pm2 stop [App name] - 서버 종료


    status가 stopped로 바뀌었다. 다시 시작하려면 $pm2 start 0 으로 한다.


    $pm2 show 0 - 서버 정보 보기

    $pm2 monit - 서버 모니터링


    $pm2 start [파일명] -i [띄울 서버의 숫자]

    일반적으로 띄울 서버의 숫자는 cpu의 개수만큼 지정한다. 0을 입력하면 자동으로 코어에 맞춰서 띄워준다.

    클러스터링으로 동작하는 서버는 mode에서 fork가 아니라 cluster로 표시된다.


    서버를 전체 종료하거나 프로세스를 죽이려면 stop, delete할 때, number id가 아니라 App name으로 실행해야 된다.


    서버의 개수를 바꾸려면 $pm2 scale [App name] [재조정할 서버의 개수] 로 실행한다.


    pm2의 자세한 사용법

    반응형

    'Web > Node.js' 카테고리의 다른 글

    Socket io  (0) 2018.09.20
    package.json  (0) 2018.07.29
    npm 패키지 설치시 package.json에 저장시키는 방법  (0) 2018.07.10
    node.js - var, let, const  (0) 2018.07.10
    Node.js KakaoTalk - API 2  (0) 2018.05.02

    댓글

Designed by Tistory.