티스토리 뷰

반응형

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 모드를 원활하게 사용할 수 있습니다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함