Node.js

보충수업 - PM2 사용법

수업소개

앞으로 학습하다보면 pm2의 동작 방법을 몰라서 고생할 수 있는 지점들이 있습니다. 이를 완화하기 위해서 추가로 제작된 수업입니다. 

pm2로 실행한 모든 프로세스를 중지 & 삭제 합니다. 

pm2 kill

아래 명령은 pm2를 실행하면서 로그가 출력되도록 합니다. (--no-daemon) 또 특정 디랙토리에 대한 watch를 하지 않도록 하는 방법입니다. 

pm2 start main.js --watch --ignore-watch="data/* sessions/*"  --no-daemon

 

 

 

강의

 

 

댓글

댓글 본문
작성자
비밀번호
  1. 준바이
    감사합니다
    대화보기
    • 준바이
      감사합니다
    • eddylee123456
      복습
    • eddylee123456
      완료
    • 스티븐잡숴
      아! 그렇군요. 답변 감사합니다~!
      대화보기
      • jimmyzip
        그때 그때 로그도 바로 볼 수 있으면 그 자체로 이득이 아닐까 싶습니다.
        이고잉님이 설명해주시는대로 따라해서 잘 되면 그 순간에는 단순히 watch만 해서
        소스코드 변경 시 브라우저 렌더링만 보고 넘어가실 수도 있겠지만
        혼자 응용해서 다른 걸 하실 때에는 no-daemon으로 로그를 바로 보는게 핵이득이실거라 생각해요.
        잘 해서 (에러)로그를 볼 필요가 없으시면 "음 ~~ 나 잘 하고 있군"의 보증이 되고,
        뭔가 잘 안되면 로그가 바로바로 나오니까 원인 파악하기 위해 >pm2 log를 날리는 수고 한 번을 덜어도 되고
        대화보기
        • 스티븐잡숴
          굳이 --no-daemon을 해야하는 이유가 뭔지 궁금합니다.
          백그라운드 프로세스를 못하게 해서 얻는 이득이 뭐길래 이런 옵션을 입력해야만 하죠?
        • 임은정
          보충까지 끝
          고생하셨습니다
          전 처음부터 다시 봐야할것가탕용
        • codinginpain
          감사합니당!
        • 욕심쟁이
          잘되네요. 좋은 정보 감사합니다.
          대화보기
          • 굼벵이
            완료
          • shtkan
            pm2 --ignore-watch 위준우님 설명에 덧붙입니다.

            프로젝트가 있는 폴더에서 콘솔에 아래 입력합니다.
            pm2 ecosystem

            그러면 프로젝트 폴더에 ecosystem.config.js 파일이 생성됩니다.
            이 파일 메모장으로 열어서 ignore할 폴더를
            ignore_watch : ["node_modules", "client/img"],
            이런식으로 추가해줍니다.
            파일 위쪽에 script에 기본적으로 app.js라고 되어 있을 건데
            자신의 스크립트 파일명으로 바꿔주세요.(강의에서는 main.js를 사용하죠)

            그리고 시작을 콘솔에서 아래와 같이 합니다.
            pm2 start ecosystem.config.js

            이렇게 하면 ecosystem.config.js 이 파일에 있는 설정대로 실행시킵니다.
            2019년 8월 18일 현재 이방법으로 되네요.
          • Jongyong Park
            190726 보충수업까지 완강 하였습니다
            감사합니다.
          • 허공
            190510 감사합니다.
          • 위준우
            --ignore-watch 해결방법
            pm2 init 혹은 pm2 ecosystem을 입력해주면 ecosystem.config.js 파일이 생성됩니다.
            pm2 설정파일 생성 사이트링크 : http://pm2.keymetrics.io......on/

            apps 설정부분에 ignore_watch: ["data/*", "sessions/*"]를 추가해주시면 해결됩니다.
            pm2 설정부분 사이트링크 : http://pm2.keymetrics.io......rt/
          • 위준우
            완료
          • supernet
            감사합니다.
          • --ignore-watch 안먹히시는 분! 저는 아래처럼 해결했습니다.
            npm install pm2@2.10.4 -g
            즉 콘솔창에 위 붙여넣기 해서 다시 설치 했더니 해결됬습니다 : )
            피같은 2시간 걸렸습니다 ㅠㅠ
          • 권문수
            감사합니다^^ 이걸로 기본 노트js수업은 모두 끝이군요 ㅎㅎ
          • 칼립소
            감사히 잘 봤습니다 node.js 서버 수업보다는 약간 쉬운 수업이었어요!
          • popinbompin
            저도 윈10인데 -watch로 실행해도 바로 꺼지는 듯합니다.
            list옵션을 주고 확인하면 프로세스가 죽어있네용... (해결법 아시는 분 코맨트점 부탁드려요!!)
          • 김나다
            윈도우 10 사용자인데 no deamon 명령어도 잘 실행됩니다.
            왜 ignore watch는 실행이 안될까요...
            디렉토리 위치도 강의와 모두 똑같습니다.
            여전히 create나 update 하면 재실행되네요

            혹시몰라서 data/* 을 data/CSS 로 임의로 아무 파일을 고정해서 하니 이때는 정상적으로 재실행이 안됩니다!
            왜그런걸까요..
          • 삼고잉
            첫번째 훑기
          • yolong
            동영상 정말 잘 보고 있습니다.
            node js 실습 잘 하고 있었는데 PM2 설치 이후 갑자기 localhost:3000이 웹에서 안열립니다.
            윈도우 10 사용하고 있구요.
            cmd에서 pm2 start main.js 실행하면 status online으로 뜨는데요
            웹에서는 사이트에 연결할 수 없음이 뜹니다.
            pm2 kill 하고 start main.js --watch --no-daemon치면
            App [main] with id [0] and pid [21028] exited with code [0] via signal [SIGINT]
            Satrting execution sequence in -fork mode- for app name:main id 0
            PM2 log: App name: main id:0 online
            App name id:0 online
            PM2 log: App [main] with id [0] and pid [21028]. exited with [0] via signal [SIGINIT]

            라는 문구가 pid 뒤의 숫자만 바뀌면서 멈추지 않고 무한 반복합니다.
            어떻게 하면 해결할 수 있을까요? ㅠ_ㅠ
          버전 관리
          egoing
          현재 버전
          선택 버전
          graphittie 자세히 보기