저번시간까지 내용으로는 로컬에서 서버 구동하는 것과 별로 차이가 없음...
터미널 종료하면 똑같이 꺼지니까
목적: 컴퓨터를 꺼도 aws에서 서버를 구동시켜서 접속이 가능하게끔 하기 위해서
위와같은 목적을 달성하기 위해서는 AWS에서 백그라운드로 서버가 돌아가게끔해야한다.
[ssh]
$sudo node server.js &
이렇게 터미널에 입력하면 백그라운드로 실행한다. &는 백그라운드에서 시작한다는 의미이다. 이걸 종료하려면 작업관리자를 명령어로 쳐야한다.
[ssh]
$ps -ef
하면 작업관리자가 실행된다.
[ssh]
$sudo kill -9 [PID번호]
node server.js와, sudo node server.js에 해당하는 pid번호를 넣어 명령어를 입력한다.
이러한 리눅스 작업을
node.js에서 pm2라는 npm으로도 위 작업이 가능하다.
명령어모음
[local]
npm i pm2
npx pm2 start [파일명] //pm2 실행시키기
npx pm2 stop [파일명] //pm2 실행 멈추기
npx pm2 nomit //모니터링하기
npx pm2 kill //pm2 끄기
위와같이 package.js파일에서 script부분에 추가해준다.
[local]
$npx pm2 start server.js
라 입력하면 pm2가 실행되고,
[local]
npx pm2 kill
이렇게 입력하며 pm2가 종료되면서 서버가 꺼진다.
이제 이걸 ssh인증서를 이용해 aws에서 적용시켜보자.
[ssh]
$ sudo npm i -g pm2
$ sudo npx start server.js
백그라운드에서 실행하는 거임.
끝낼때는
[ssh]
$sudo npx pm2 klill
한 다음에 메모를 남겨두기 위해서
[ssh]
$vi package.json
쳐주고
아래와 같이 수정한 다음 :wq!를 쓰고 빠져나온다.
그러면 이제
[ssh]
$ sudo npx pm2 start server.js
[ssh]
$npm run start
하면 실행되고,
[ssh]
$npx pm2 list
하면 이 창을 다시 띄울 수 있다.
서버 화면도 잘 뜨는 것을 확인할 수 있다.
[ssh]
$sudo npx pm2 kill
하면 서버가 종료된다.
sudo를 붙이지 않으면 저절로 다시 재실행시켜준다.