[Node.js] forever로 서버 백그라운드 실행

Server The SOPT·2022년 7월 22일
0
post-thumbnail

✏️ 작성자: 김민욱
📌 작성자의 한마디: 어떻든 간에,, 방법은 다 있다..?

이번 프로젝트를 진행하면서 내 기준 가장 많은 시간을 할애한 것은 서버 배포 문제였다.
처음에 CI/CD 로 배포를 해보기 위해서 정말,, 수많은 에러 끝에 절반 정도 성공 + 팀원들의 도움으로 성공했지만 모종의 이유로 일단락하고 다른 배포 방식을 찾아보았다.
세미나에서 배운 Pm2로 시도를 해봤지만, 'JavaScript heap out of memory' 라는 에러가 발생하였고, 더 큰 메모리를 할당하는 방법을 사용해도 문제가 해결되지 않았다.
문제를 해결하려고 nohup이라는 백그라운드 실행 방법을 찾았는데도 실패했다.
정말 이렇게 고생을 하던 중 forever 라는 한줄기의 빛을 발견하여 지금도 에러 없이 배포가 잘 진행되고 있기에,, 도움이 될까 싶어서 기록하게 되었다.


forever 설치하기

일단 ec2에 연결되어 있는 상태에서 아래의 커맨드를 입력한다.

> npm install forever -g




forever 실행하기

여기서 -c는 커맨드를 실행시켜주는 옵션이다.(COMMAND to execute (defaults to node))

> cd 프로젝트 경로
> forever start -c "yarn run dev" ./

아래와 같이 실행을 시키면 warn이라는 메세지가 뜨는데 에러가 아닌 경고 부분이므로 크게 신경 쓰지 않아도 된다.


forever가 정상작동 되는지 확인

forever로 작동을 시키면 배포가 잘 되었는지 확인을 해야 한다.
아래 사진과 같이 리스트가 보이면 정상작동임을 확인할 수 있다.(리스트 안 보이면 안된 거임ㅎ)

> forever list


아래의 명령어를 입력하면 내가 사용하는 포트가 구동되고 있는지 볼 수 있다.
> lsof -i:포트번호



forever로 배포 종료

종료를 하기 전 항상 forever list 명령어로 리스트를 먼저 확인을 하자!
이유는 pid 값을 알아야 종료를 할 수 있기 때문이다. 리스트를 확인하는 명령어를 입력한 뒤 pid 값을 알아내서 아래와 같이 입력하자.

> forever list
> forever stop <pid >




forever log 보기

forever logs의 명령어로 배포 중인 서버의 로그를 볼 수 있다. forever list를 확인하고 몇 번째의 프로그램인지 확인 후 log를 확인하면 된다.

> forever logs 0




forever 공식문서

forever 공식문서

profile
대학생연합 IT벤처창업 동아리 SOPT 30기 SERVER 파트 기술 블로그입니다.

0개의 댓글