backend 서버를 나가면 서버가 멈춘다.
node가 foreground process로 동작해서 생기는 문제다. (터미널 끄면 같이 꺼짐 node app)
sudo su ← 루트로 넘어간다. 80(1023 아래.. 443 등에 접근할 권한이 필요하면)
백그라운드로 실행하는데 달러를 뒤에 붙이는 방식이 있으나 우리는 pm2가 기능이 좋아서 이걸 쓴다.
npm i pm2
JavaScript
복사
// package.json
start: pm2 start app.js
JavaScript
복사
우분투로 80번 포트에 연결하므로 불가능하다. 루트만 접근 가능하므로 sudo npm start해야 한다.
npx pm2 monit // 로그 확인
npx pm2 kill // 정상 실행되지 않을 때
JavaScript
복사
// 실행
sudo npm start && sudo npx pm2 monit
JavaScript
복사
pm2는 앱 로그를 찍어주고 서버가 죽으면 자동으로 되살려준다.
npx pm2 logs
npx pm2 logs —error
npx pm2 list
JavaScript
복사
npx pm2 reload all
sudo ~~~~로 하기 싫으면 sudo su로 넘어가서 해도 상관없다.
AWS는 탄력적 IP로 고정아이피를 설정해두지않으면 주기적으로 바뀐다.
pm2 이점
pm2는 프로세스 매니저 역할을 한다.
•
무중단 서비스 : 프로그램이 죽으면 자동 재시작한다.
•
백그라운드 실행 : 터미널에서 다른 명령어를 입력할 수 있다.
•
멀티프로세스 : 자원 효율적 사용
•
다양한 명령어로 프로세스 관리 및 컨트롤