dukDukz

21.07.19 AWS background 에서 server 돌리기 본문

웹 개발/AWS

21.07.19 AWS background 에서 server 돌리기

헤일리_HJ 2021. 7. 20. 14:05

$ pwd
$ ls
$ cd awsTest

$ sudo node server.js
그냥 서버 돌리기

$ sudo node server.js &
리눅스에서 background 에서 돌리는방법

이걸 끌 때는 
작업관리자  : ps -ef
끌 때는 : 
sudo kill -9 [node server.js 가 돌아가고 잇는 번호] 
sudo kill -9 

소유권 root 로 node 서버 실행했는데 ubuntu 아래 계정으로 서버 종료 하려고 하니 안되서 sudo kill 로 간것이다.


+++++++++++++++++++++++

pm2


리눅스에서 백그라운드 & 붙여서 돌리는걸 node.js에서 pm2 패키지 사용해서 해보자
pm2 라는 패키지라는게 있는데 그거로 백그라우드에서 서버 돌리는 방법을 알아보자

현재 우분투 awsTest 라는 폴더에 있다면
거기서 나와서 exit로 완전히 로컬 서버로 나와준다.

거기서 npm install pm2


+++++++++++++++++++++++++++

# pm2 명령어

npx pm2 start [파일명]
npx pm2 stop [파일명]   (확장자 빼고)
npx pm2 monit
npx pm2 kill
npx pm2 list

++++++++++++++++++++++++++++++

aws_back 터미널에서
awsTest 폴더에 들어온 다음에 


$ sudo npm install -g pm2             // 리눅스에 까는거임
$ npx pm2 start server.js             // 포트가 80번이라서 관리자 권한으로 실행해야 된다.

                                                - 그래서 우분투로 실행하면접속이 안됨

$ sudo npx pm2 start server.js        // 관리자 권한으로 실행
$ sudo npx pm2 kill                   // 서버 끄기


이렇게하면 서버가 돌아간다. - 백그라운드에서 실행했던것처럼

 

-----------------------------------

 

[package.json]
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start" : "pm2 start server.js"         // 이거 추가하고
},

이런 명령어를 단축어로 빼주는게 좋다
package.json 에서 수정해야하는데

vi package.json 에서
scripts 부분에 

"start" : "sudo pm2 start server.js"
를 추가해주고
저장하고 나오자 - :wq! 이렇게
하고 나오면
실행하려면

sudo npx pm2 start server.js
sudo npx pm2 kill
----------------------------------------------------------

stop 과 kill의 차이
sudo npx pm2 stop server 하면 상태값이 stopped 으로 바뀌면서 종료가 된다
kill은 프로세스를 삭제