AWS EC2 forever사용하기

시작하기

forever 설치하기

설치하는 방법은 간단합니다. ec2에 연결되어있는 상태에서 다음 커맨드를 입력합니다.

1
npm install forever -g

forever를 글로벌로 설치해줍니다.

다음 커맨드를 입력해 서버를 실행하겠습니다.

1
2
3
cd 해당프로젝트
forever start -c "npm run start" ./
# 예시) forever start -c "npm run dev" ./

-c 는 커맨드를 실행시켜주는 옵션입니다.

입력하고 나면 다음과 같은 메시지가 나옵니다.

1
2
3
4
5
6
warn:    --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: ./
(node:18700) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:18700) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency

(node:18700) Warning: Accessing non-existent property 'padLevels' ....이 부분은 크게 신경 안쓰셔도 됩니다.
에러가 아닌 경고 부분이기 때문에 작동은 제대로 됩니다.

확인

1
forever list

forever list 커맨드를 입력하면 다음과같이 forever의 기록이 나옵니다.

1
2
3
info:    Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] tUBd npm run start 19368 19375 /home/ec2-user/.forever/tUBd.log 0:0:0:6.338
1
2
lsof -i :서버포트
# 예시) lsof -i :8080

위의 커맨드를 입력하면 실제 구동되고 있는 포트를 볼수 있습니다.

1
2
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node 18729 ec2-user 19u IPv6 128760 0t0 TCP *:webcache (LISTEN)

다음과 같이 서버가 켜져 있는것을 확인할 수 있습니다.

종료

1
2
forever stop list의 pid
# 예시) forever stop 19375

종료하고자하는 forever의 pid를 입력해줍니다.
forever를 종료하면 forever list에는 정지가 되었다고 나옵니다.
하지만 확인해보면 포트는 남아있는것을 확인할 수 있습니다.
포트도 종료시켜줍니다.

1
2
kill -9 "PID"
# 예시) kill -9 "18729"

포트를 종료시키는 커맨드입니다.

Share