티스토리 뷰
PM2는 Node.js 프로세스 관리자로, Node.js 애플리케이션의 실행, 모니터링, 로그 및 프로세스 관리를 쉽게 할 수 있게 해줍니다. PM2 watch 모드는 코드의 변경 사항을 감지하고 자동으로 애플리케이션을 다시 시작하는 기능을 제공합니다. 하지만 때로는 pm2 --watch 명령어가 작동하지 않을 수 있습니다. 이 문제를 해결하는 방법과 유용한 팁에 대해 살펴보겠습니다.
1. 올바른 경로와 옵션 사용
pm2 --watch 명령어를 실행할 때 올바른 경로에 있는지 확인하고, 명령어에 올바른 옵션이 포함되어 있는지 확인해야 합니다. 예를 들어, pm2 start app.js --watch 명령어를 실행할 때, app.js 파일이 있는 경로에서 명령어를 실행해야 합니다.
2. 권한 수정
pm2 --watch 명령어를 실행할 때 권한이 충분하지 않으면 작동하지 않을 수 있습니다. 이 경우, sudo 명령어를 사용하여 명령어를 루트 권한으로 실행하거나, 권한을 수정하여 실행할 수 있습니다.
3. 파일 권한 수정
pm2 --watch 명령어가 작동하지 않을 때 파일에 쓰기 권한이 없거나 파일의 소유자가 올바르지 않은 경우가 있습니다. 이 경우, chmod 명령어를 사용하여 파일의 권한을 수정하거나, 파일의 소유자를 변경할 수 있습니다.
4. 파일 시스템 확인
pm2 --watch 명령어가 작동하지 않는 경우 파일 시스템 자체에 문제가 있을 수 있습니다. 이 경우, fsck 명령어를 사용하여 파일 시스템에 대한 점검을 수행할 수 있습니다.
5. 다른 프로세스와 충돌
pm2 --watch 명령어를 실행하는 동안 다른 프로세스와 충돌이 발생하는 경우 작동하지 않을 수 있습니다. 이 경우, 다른 프로세스를 종료하거나, pm2 --watch 명령어를 다른 시간에 실행해보는 것이 좋습니다.
pm2 stop index.js && pm2 delete index.js // 정지 및 삭제
이방법으로 다 해결됐습니다.
6. PM2 업그레이드
PM2의 버전이 오래되어 watch 모드에서 문제가 발생할 수도 있습니다. 이 경우, pm2 update 명령어를 사용하여 PM2를 업그레이드할 수 있습니다.
7. 로그 확인
pm2 --watch 명령어가 작동하지 않을 때, 로그 파일을 확인하여 문제를 해결할 수 있습니다. pm2 logs 명령어를 사용하여 로그 파일을 확인할 수 있습니다. 로그 파일을 보면 애플리케이션에서 발생한 오류를 확인할 수 있으며, 이를 해결하면 pm2 --watch 명령어가 다시 작동할 수 있습니다.
PM2 | App name:index id:10 disconnected
PM2 | App [index:10] exited with code [0] via signal [SIGINT]
PM2 | pid=32511 msg=process killed
PM2 | App [index:9] starting in -cluster mode-
PM2 | pid=32517 msg=process killed
PM2 | App [index:10] starting in -cluster mode-
PM2 | App [index:9] online
이런식으로 에러가 난다면 5번 해결법처럼 프로세스를 정지하고 삭제 후 다시 시작 하면 해결이 됩니다.
8. PM2 설정 확인
pm2 --watch 명령어가 작동하지 않는 경우, PM2 설정 파일에서 문제가 발생할 수 있습니다. 이 경우, pm2 show 명령어를 사용하여 현재 설정을 확인하고, pm2 reset 명령어를 사용하여 설정을 초기화할 수 있습니다.
9. PM2 설정 수정
pm2 --watch 명령어가 작동하지 않을 때, 설정을 수정하여 문제를 해결할 수 있습니다. 예를 들어, watchOptions 설정을 변경하여 코드 변경 감지 간격을 늘리거나 줄일 수 있습니다. pm2 start app.js --watch --watch-options '{"interval":1000}'와 같이 실행하면, 코드 변경 감지 간격을 1초로 설정할 수 있습니다.
10. PM2 모듈 업데이트
PM2 모듈이 오래되어 작동하지 않을 수도 있습니다. 이 경우, pm2 update 명령어를 사용하여 PM2 모듈을 업데이트하고, pm2 install pm2-logrotate 명령어를 사용하여 로그 파일의 크기와 개수를 제한할 수 있습니다.
PM2는 Node.js 애플리케이션을 관리하는 데 매우 유용한 도구입니다. 그러나 pm2 --watch 명령어가 작동하지 않는 경우가 있으며, 이를 해결하는 방법을 이 글에서 알아보았습니다. 위에서 언급한 팁을 따르면 PM2 watch 모드를 원활하게 사용할 수 있습니다.
'IT 한스푼' 카테고리의 다른 글
Vue.js에서 Filter 사용법과 활용 방법 (0) | 2023.05.31 |
---|---|
MYSQL JOIN과 서브쿼리 차이점과 사용 (0) | 2023.05.22 |
Node.js에서 FCM을 사용하여 전체 메시지 보내기 (3) | 2023.05.04 |
Vue.js로 웹페이지 타이틀 동적으로 변경하는 방법 (0) | 2023.04.27 |
Node.js에서 Redis 사용법 - node-redis 라이브러리 활용하기 (0) | 2023.04.27 |
- Total
- Today
- Yesterday
- 단백질
- FCM
- 운동
- node.js
- 예방
- javascript
- 체중 감량
- 딥링크
- 운동 효과
- 건강한 식습관
- 건강
- 다이어트
- 서버
- Firebase Cloud Messaging
- mysql
- 라이프스타일
- socket.io
- 고혈압
- 크로스핏
- 고지혈증
- vue.js
- pm2
- 요리
- 당뇨
- 혈당 관리
- 스포츠
- express.js
- 관리
- 관절염
- 웹 개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |