외장_하드
외장하드
외장_하드
전체 방문자
오늘
어제
  • 분류 전체보기 (419)
    • 국내 여행 (197)
      • 수도권 (20)
      • 충청도 (17)
      • 강원도 (32)
      • 전라도 (21)
      • 경상도 (50)
      • 제주도 (57)
      • 나들이 (0)
    • 일상 (40)
      • 휴식 (15)
      • 취업 준비 (19)
      • 월간일상 (3)
      • 군생활 (3)
    • 국외 여행 (40)
      • 일주 준비 (4)
      • 중국 (11)
      • 대만 (5)
      • 태국 (20)
    • 취미 (19)
      • 제품 후기 (11)
      • 지식 (8)
    • 자동차 (21)
      • 뉴 그랜저 XG (15)
      • 올 뉴 K3 (5)
    • IT (102)
      • Spring (18)
      • DataBase (11)
      • AWS (22)
      • GIT | github (9)
      • 기타 (23)
      • 머신러닝 | 딥러닝 (8)
      • Tech | Eng (3)
      • Python (2)
      • nodejs (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 뚜벅이
  • 강원도
  • EC2
  • 가성비
  • 푸켓
  • 전라도
  • 제주도
  • 여행
  • 부산
  • 코스
  • 추천
  • 후기
  • 방법
  • 스프링
  • aws
  • 혼자여행
  • 카페
  • 스쿠터
  • 설치
  • 주차장

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
외장_하드

외장하드

[라이트세일/EC2] 우분투 리눅스 서버에서 express, React 서버 백그라운드 실행 방법 / forever 설치 / npm run start / 터미널 종료
IT/AWS

[라이트세일/EC2] 우분투 리눅스 서버에서 express, React 서버 백그라운드 실행 방법 / forever 설치 / npm run start / 터미널 종료

2023. 7. 29. 17:33
반응형

서버 백그라운드 실행?

현재 내 라이트세일 리눅스 서버에서 express 로 만든 app을 실행시키면 이렇게 나온다. 서버가 정상적으로 켜졌고, 예상한대로 내가만든 API 에 대한 응답을 모두 정상처리를 해주고있다. 다만. 지금 내가 접속한 터미널을 꺼버리면 터미널 세션이 날아가면서 동시에 내 exrpess API 서버도 종료가된다. 그렇다면... 서버를 운영하기위해 어딘가에 있는 PC에서 터미널을 켜놔야하는 것일까?! 물론 아니다.forever 라는 도구를 이용해서 터미널을 종료해도 서버에 백그라운드 형태로 앱을 동작시킬 수 있다.

 

Forever 설치

sudo npm install -g forever

forever 패키지를 전역으로 설치해주자

 

Forever 실행

cd {App 경로} #실행할 디렉토리 이동
sudo forever start {app}  # forever 이용해 실행

# Ex) sudo forever start app.js

일단 기본 구문은 이렇다. 하지만 위 예시는 특정 .js 스크립트를 실행하는 명령어고 나는 npm 명령어로 start 할지 debug 할지 정할것이기 때문에 아래 형태로 실행했다.

sudo forever start -c "npm run start" ./
# or
sudo forever start -c "npm run debug" ./

끝에 ./ 도 실행경로니 꼭 붙혀줘야한다.

뭔가 에러가 난 것 처럼 나오는데 모두 정상적으로 실행된 상태이다.

React 구동시 서버 멈출 경우

이건 경험담인데 express backend 구동은 아무 문제가 없었으나, React frontend 서버를 구동하는데 서버가 멈추는 현상이 있었다. 결론 부터말하면 서버메모리가 부족해서 발생한 현상이었다. 참고로 내 라이트세일 서버의 RAM 은 1GB.. 리액트 빌드하는데... 리소스를 많이먹는구나.. 처음알았다..ㅠㅠ 아무튼.. 아래 포스팅을 참고해서 해결하면 된다.

https://extsdd.tistory.com/452

 

[React] EC2/라이트세일 서버에서 리액트 npm start 배포/빌드/구동시 서버 멈춤 해결하기 / 메모리 부

현상 로컬환경에서 리액트 프론트앤드 서버구축을 끝냈고 git 저장소로 올려 이제 서버 배포하는 단계에서 문제가 일어났다. 서버 터미널에서 npm start 명령어를 이용해 앱을 실행하면 빌드과정

extsdd.tistory.com

Forever 조회

sudo forever list

forever 를 이용해 백그라운드에서 동작하는 프로세스를 확인 할 수 있는데 uid 가 process id 라고 생각하면 된다. [0], [1] ... 이런식으로 번호가 붙는데 이번호를 이용해서 정지를 할 수 있다.

 

백그라운드 App 테스트

모든 터미널을 종료하고 새 터미널을 이용해서 실행해보자.

정상적으로 응답을 주는 것을 볼 수 있다.

Forever 종료

sudo forever stop {UID} # forever list 에서 조회환 UID

위 명령어를 이용해서 list 에서 확인했던 uid 를 입력하면 정지시킬 수 있다.

Forever 로그

sudo forever logs {UID} # list 에서 확인한 UID

logs 커멘드를 이용하면 백그라운드에서 출력된 터미널 로그를 확인할 수 있다.

logs 파일

{home}/.forever # forever logs 파일 경로

로그 파일은 home 디렉토리 하위에 .forever 디렉토리 하위에 생성된다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'IT > AWS' 카테고리의 다른 글

[라이트세일/EC2] 우분투 리눅스 서버에 Nginx 웹서버 설치방법 / 설정 및 서버 시작 / 정지 / 상태확인 / 재시작  (0) 2023.07.29
[EC2/라이트세일] 리눅스서버에 nodejs express/react 실행 후 외부에서 접속되지 않는 경우 / AWS 포트 방화벽 설정 / 사이트에 연결할 수 없음 / ERR_CONNECTION_TIMED_OUT / 공인 IP  (0) 2023.07.29
AWS 라이트세일 UPSTREAM_NOT_FOUND[519] 해결하기 / LightSail 콘솔 접속 안됨 문제 해결  (0) 2022.08.14
[아마존 AWS EC2] 서버 인스턴스 삭제하기 / 프리티어 종료! / Elastic IP 삭제  (10) 2021.05.01
[아마존 AWS EC2] 인스턴스에 Route 53 서버 도메인 주소 연결 및 설정하기 / URL / DNS 등록 / 도메인 구입 비용 / 톰캣 / 스프링 프로젝트  (0) 2020.06.04
    'IT/AWS' 카테고리의 다른 글
    • [라이트세일/EC2] 우분투 리눅스 서버에 Nginx 웹서버 설치방법 / 설정 및 서버 시작 / 정지 / 상태확인 / 재시작
    • [EC2/라이트세일] 리눅스서버에 nodejs express/react 실행 후 외부에서 접속되지 않는 경우 / AWS 포트 방화벽 설정 / 사이트에 연결할 수 없음 / ERR_CONNECTION_TIMED_OUT / 공인 IP
    • AWS 라이트세일 UPSTREAM_NOT_FOUND[519] 해결하기 / LightSail 콘솔 접속 안됨 문제 해결
    • [아마존 AWS EC2] 서버 인스턴스 삭제하기 / 프리티어 종료! / Elastic IP 삭제
    외장_하드
    외장_하드
    자동차 / 여행 / 취업 / 일상 / IT / 코딩

    티스토리툴바