[Node.js]패키지 매니저의 개념과 PM2 기능 살펴보기
패키지 매니저와 PM2
NPM ; node.js 에서 가장 광범위하게 사용되는 패키지 관리해주는 패키지매니저
기본적으로 node.js 설치시 함께 설치됨
패키지 ; 소프트웨어 부르는 여러말 중 하나, 독립적으로 실행되는 프로그램, 프로그램안의 부품 프로그램 등
패키지 매니저는 이러한 소프트웨어 관리 생성 설치 업테이트 관리 삭제 등 관리해줌
각각 컴퓨터 언어 운영체제별 역할을 함 , NPM 그중 하나
NPM통해 프로그램 설치 하기
검색엔진 PM2 검색
PM2라는 패키지 나옴
PROCESS는 프로그램을 부르는 다른 말 중 하나
실행중인 프로그램(노드를 통해 만든 main.js같은), 프로그램이 원하지 않는 순간 꺼질 수 있어, pm2같은 프로그램이 프로세스 감시하다가 꺼지면 다시 켜
아니면 코드 수정시 nodejs껐다가 다시 실행시켜야지만 변경 반영됐는데 pm2가 파일이 수정되는지 감시하다가 자동으로 껏다가 다시 켜서 수정할때마다 반복하던 작업 자동으로 하도록 함
pm2검색시 나오는 페이지 화면, 드래그로 표시된 코드 프롬프트화면에 입력시 설치됨
-g 는 독립된 소프트웨어이기에 이 컴퓨터 어디서든 사용할 수 있어야 한다는 의미
pm2 로 main.js 를 실행한 것임
위와 같이 웹페이지 실행됨을 볼 수 있음
현재 pm2 로 실행중인 프로세스 리스트 보여주기; pm2 list
현재 pm2로 실행중인 것 뜸 ; pm2 monit, q버튼 누르면 나가짐
프로그램 끄고싶을때 pm2 list로 목록을 보고 끄고싶은 프로그램(main.js) 체크하고 pm2 stop main.js 입력
pm2가 소스코드 변경시 자동으로 main.js 를 껐다 켜주기 때문에 직접 수정할때마다 껐다키지 않아도 됨
pm2 start main.js --watch 입력, watch 꼭 입력해야함
입력 후 main.js 변경시 원래는 ctrl+c 해서 다시 node main.js 입력해야 했다면
이제는 그냥 웹페이지 새로고침시 반영되어 나옴
그러나 node main.js 로 실행시 문제점이 있다면 바로 프롬프트화면에 보여줬지만 pm2로 실행시 그렇지 않음
이를 위해 pm2는 pm2 log 입력시 문제점 볼 수 있음
pm2 kill
pm2 로 켜진 모든것을 꺼버림
pm2 start main.js --watch --no-daemon
pm2 를 실행하는 것과 동시에 로그까지 보이게함
daemon 은 백그라운드로 실행되는 프로그램들을 의미
즉 --no-daemon 입력시 데몬이 아닌상태로 실행되게 됨
나가려면 ctrl + C
그런데 pm2 list해보면 꺼질때도 있고 아닐때도 잇어
걍 pm2 kill 하기
--ignore-watch="data/*"
data 디렉토리에 있는 모든 파일에 대해서 watch 를 무시한단 뜻
pm2 start main.js --watch --no-daemon 을 입력시에 pm2 를 실행함과 동시에 log를 볼 수 있는데
웹페이지에서 create 할 경우 위와 같이 node.js 가 꺼졌다가 다시 켜지는 것을 볼 수 있음( restarting 부분에서 확인)
근데 나중에 세션이나 passport배우면 원하지 않는 타이밍에 프로그램이 꺼졌다가 켜지는것은 원하지 않는 것임.
우리가 세팅해놓은 여러 데이터가 사라지기때문.. 파일에 있는 데이터 아니고 메모리에 올라가있던 데이터가 사라져버림
이런경우에는 --ignore-watch 를 사용하는 것임
파일을 수정하거나 추가하는 등 기능이 들어가는 경우는 ignore watch 기능 해서 꺼졌다 켜지는것 방지하기
+만약 여러 디렉토리 관리해야 하면 한칸 띄어쓰기 하고 디렉토리 추가 하면됨
data/* 한칸띄우고 session/* 입력