본문 바로가기

개발이야기/Server

NPM의 forever 모듈, 앱의 인스턴스 관리를 자동으로 하자!

728x90

NPM의 forever 모듈, 앱의 인스턴스 관리를 자동으로 하자!




안녕하세요. KorFresh 입니다. 오랜만에 포스팅을 하네요. 요즘 온라인플렛폼 수익방법이 여러가지가 있어 그쪽 준비를 하다 보니 개인블로그 신경을 많이 못 썼네요. 코인을 이용해서 재정거래 돌리는방법, 주식투자, 유튜브활동 이래저래 많이 시도해보고 있는게 많네요 ㅎ 


쓸데없는 잡담이 길어졌네요 포스팅의 주제인 forever에 대해 설명 하겠습니다. 저는 본래 Apache나, nginx를 기반으로 하는 웹개발자라 nodeJS기반의 서버를 사용할 일이 없었지만




최근 트렌드가 ReactJS 나 Vue를 많이 사용하다 보니 거기에 맞춰 공부를 했고, 이걸 사용하기 위해서는 어쩔수 없이 nodeJS기반의 서버를 운용해야 했습니다. 정말 적응하는데 엄청 애먹었습니다. 구글링을 통해 어찌어찌 해결해나가다가 결국 사이트를 완성하였고 오픈하기 바로전날 정말 생각지도 못한 문제가 발생했습니다.


개발단계에서야 shell 환경에서 npm nuxt run 같은 명령어로 서버를 활성화 시켜 localhost:3333 이런식으로 홈페이지를 접속하면 됐지만, 실서버에 업로드를 하고 서버실행을 한 후 shell 접속을 끊어버리면 세션이 끊기면서 작동중인 서버도 멈춰버리는 문제가 발생했습니다.


백그라운드 환경에서 실행시켜도 보았지만 실패하였고, 예기치 않게 오류등으로 인해 서버가 불시에 꺼지는 경우도 발생하여 분명 저와 같은 문제를 겪은 개발자들이 있으리라 생각하여 열심히 구글링 해보니, 몇 가지 해결책이 있었습니다.


첫번째는 NPM의 forever모듈을 사용하여 관리하는 방법이고, 두번째는 AWS의 엘라스틴빈스톡으로 앱을 배포하는 방식이 있었습니다.

저는 forever을 이용해 문제를 해결하였기에 엘라스틴빈스톡은 다음에 설명하도록 하겠습니다.


모듈 사용법은 간단 합니다.


모듈 간단 사용 방법


1. 설치 방법 sudo npm install forever 

2. 실행 방법 forever start {명령어}

명령어 부분에는 app.js 같이 파일명이 들어가도 되고 npm run start 같은 명령어가 들어가도 됩니다

3. 실행중인 프로세스 목록 forever list 

list를 하게 되면 프로세스 앞에 {번호}가 있습니다.

4. 프로세스 종료 forever stop {번호}

3번에서 확인한 번호를 넣으면 됩니다.


이정도만 알면 켜고 끄는데는 문제 없을것 같습니다. 추가적인 질문은 댓글로 남겨주시면 확인하는데로 답변 드리겠습니다.