Node.js app 이 실행 중에 어떤 장애로 인해 app 이 뻗어버린 경우 app 을 다시 실행해야할 경우가 있다.

 app 이 멈출경우 자동으로 app 을 다시 실행시켜주는 forever npm 모듈을 소개한다.


 forever

설치는 npm 모듈로 npm install 로 가능하다.

 $ sudo npm install forever


자주 쓰이는 모듈이기 때문에 -g 옵션으로 글로벌 설치를 하면 편리하다.

 $ sudo npm install forever -g


실행, 조회, 종료는 다음과 같이 실행하면 된다.


실행다음과 같이 실행하면, app.js 가 실행 중 멈추면, 다시 재실행된다

 $ forever start app.js


실행중인 프로세스 조회

 $ forever list


프로세스 종료

 $ forever stop app.js


forever 는 실행시 자신이 포크한 프로세스로 node app 을 실행하고, 프로세스가 stop 되면 자신도 kill 한다.


Help Options






Posted by leechwin

댓글을 달아 주세요

  1. mariah 2015.02.16 11:29  댓글주소  수정/삭제  댓글쓰기

    설치는 -g로 하는 걸 추천한다고 합니다. http://labs.telasocial.com/nodejs-forever-daemon/

    그런데 forever도 node process로 보이는데,
    forever 자체는 어떻게 죽나요? forever stop 시에 자신이 fork(?)한 프로세스 죽이고 같이 죽나요?

    • Favicon of https://leechwin.tistory.com BlogIcon leechwin 2015.02.17 14:04 신고  댓글주소  수정/삭제

      좋은 내용 감사합니다.
      말씀하신대로 forever 는 실행시 자신을 포크한 프로세스가 stop 되면 자신도 죽습니다. 도움이 되셨으면 좋겠네요.

    • mariah 2015.02.17 16:10  댓글주소  수정/삭제

      자신"이" 포크한 프로세스 이겠죠?
      그런데 app.js가 비정상 종료된 건 어떤 메커니즘으로 아는 건가요? @

  2. Favicon of https://leechwin.tistory.com BlogIcon leechwin 2015.02.24 00:45 신고  댓글주소  수정/삭제  댓글쓰기

    forever 는 포크한 자식프로세스에 대한 에러핸들러를 등록하고 있고, 자식프로세스에서 Error event 및 프로세스 상태가 비정상일 경우 host 프로세스에 socket 으로 에러 이벤트를 보내 자식프로세스를 재시작하는 구조인듯합니다.