생활코딩

Coding Everybody

보충수업 - PM2 사용법

토픽 생활코딩 > WEB > WEB2 - Node.js

수업소개

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

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

pm2 kill

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

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

 

 

 

강의

 

 

댓글

댓글 본문
  1. 비전공자
    오전 10:21 2024-05-12
  2. Hoon Ko
    20231016
  3. 230926
  4. 어흥
    230702
  5. 감자
    22.12.04 완료
  6. 당당
    2022.10.30
  7. 아캔두잇
    20220811 완료
  8. xogk1128
    22.07.14 완료
  9. kimkk
    완룐...
    보충수업을 Node.js - 패키지 매니저와 PM2 밑으로 이동주시면 좋겠어요..

    그래야... 그 후의 수업에서 유용하게 쓸 수 있을 거 같아요.
  10. 프론트
    수업끝
  11. cornpip
    원래 됐었는데 갑자기 --ignore-watch="data/*" 로 하면 안되네요.
    저는 아래 4개로는 ignore 잘 작동됩니다. 안되시는 분들 참고해보세요~
    --ignore-watch="data"
    --ignore-watch "data"
    --ignore-watch="./data"
    --ignore-watch "./data"
  12. labis98
    20210730
  13. Duke
    2021.07.18
  14. 이중원
    pm2 구동을하고 예전과 다름없이 localhost:3000으로 접속을 하면 not defined가 뜹니다... 어떻게 해결화나요..
  15. yesjjin99
    2021.05.30 수강완료
  16. Jeong Il Haan
    20210423
  17. 동동이
    안녕하세요 window에서 pm2를 구동중인데 watch옵션을 사용한 후 수정하면
    웹에서는 수정되지 않은 상태로 오류가 뜹니다.

    pm2 start main.js --watch --no-daemon 실행시
    Error caught while calling pidusage
    Error: Error: spawn wmic ENOENT
    이런 오류가 뜨고

    파일 수정후 저장을 누르면
    Change detected on path main.js for app main - restarting
    PM2 | Stopping app:main id:0
    PM2 log: pid=16224 msg=failed to kill - retrying in 100ms
    PM2 | pid=16224 msg=failed to kill - retrying in 100ms
    retrying 이 계속 이루어 지며
    PM2 log: Process with pid 16224 could not be killed
    PM2 error: app=main id=0 pid=16224 could not be stopped
    PM2 error: Process with pid 16224 already exists
    PM2 error: Trace: Error: Process with pid 16224 already exists
    이러한 오류가 뜹니다.
    어떻게 해결을 해야될까요?
  18. byoonn
    완료
  19. jeisyoon
    2012.02.12 Node.js 완강
    감사합니다.
  20. 마아앙
    2021.02.09
  21. 생활둘기
    2020 12 27
  22. 수두니
    [PM2][ERROR] Error: No script path - aborting 해결하신 분 계실까요?ㅠㅠ
  23. 라온
    감사합니다~(2020/11/07) 완료
  24. Yong Hyun Lee
    정말 감사합니다.
    수강완료 201002
  25. 착한얼굴에그러치모탄태도
    passport 에서 왓다감~
  26. 바다의왕자
    완료
  27. bomnie
    nodejs 강의 수강 완료! 감사합니다!
  28. eddylee123456
    복습
  29. eddylee123456
    완료
  30. 스티븐잡숴
    아! 그렇군요. 답변 감사합니다~!
    대화보기
    • 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 뒤의 숫자만 바뀌면서 멈추지 않고 무한 반복합니다.
          어떻게 하면 해결할 수 있을까요? ㅠ_ㅠ