[node.js] Nodemon 오류 : 파일 감시자 수에 대한 시스템 제한에 도달했습니다.

저는 graphql 작업을 배우고 graphql사용 prisma-binding하고 있습니다. nodemon노드 서버를 시작하는 동안 이 오류가 발생하고 graphql-cli. 누구든지이 오류가 무엇인지 말해 줄 수 있습니까?

오류:

Internal watch failed: ENOSPC: System limit for number of file watchers reached, watch '/media/rehan-sattar/Development/All projects/GrpahQl/graph-ql-course/graphql-prisma/src/generated



답변

Linux를 사용하는 경우 프로젝트가 시스템의 파일 감시자 제한에 도달하고 있습니다.

이 문제를 해결하려면 터미널에서 다음을 시도하십시오.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p


답변

Ubuntu 컴퓨터에서 VSCode로 작업 할 때 가끔이 문제가 발생합니다.

제 경우에는 다음 해결 방법이 도움이됩니다.

감시자를 중지하고 VScode를 닫고 감시자를 시작하고 VSCode를 다시 엽니 다.


답변

시스템 사용자에 대한 inotify 감시자 제한 을 늘려야합니다 . 다음을 사용하여 명령 줄에서이 작업을 수행 할 수 있습니다.

sudo sysctl -w fs.inotify.max_user_watches=100000

하지만 재부팅 할 때까지만 지속됩니다. 이를 영구적으로 만들려면 /etc/sysctl.d/10-user-watches.conf다음 내용으로 명명 된 파일을 추가하십시오 .

fs.inotify.max_user_watches = 100000

변화 위 (또는 다른)를 한 후, 당신은 모든 sysctl을 구성 파일의 설정을 다시로드 할 수 있습니다 /etcsudo sysctl -p.


답변

변경 사항을 테스트하기 위해 524288 값으로 매개 변수를 임시로 설정했습니다.

sysctl -w fs.inotify.max_user_watches=524288

그런 다음 유효성 검사를 진행합니다.

npm run serve

문제가 해결되었습니다. 영구적으로 만들려면 “/etc/sysctl.conf”파일에 한 줄을 추가 한 다음 sysctl 서비스를 다시 시작해야합니다.

cat /etc/sysctl.conf |tail -n 2
fs.inotify.max_user_watches=524288

sudo systemctl restart systemd-sysctl.service


답변

관찰자 수를 얼마나 늘릴 지 알기가 어려울 수 있습니다. 따라서 다음은 감시자 수를 두 배로 늘리는 유틸리티입니다.

function get_inode_watcher_count() {
  find /proc/*/fd -user "$USER" -lname anon_inode:inotify -printf '%hinfo/%f\n' 2>/dev/null |
  xargs cat |
  grep -c '^inotify'
}

function set_inode_watchers() {
  sudo sysctl -w fs.inotify.max_user_watches="$1"
}

function double_inode_watchers() {
  watcher_count="$(get_inode_watcher_count)"
  set_inode_watchers "$((watcher_count * 2))"

  if test "$1" = "-p" || test "$1" = "--persist"; then
    echo "fs.inotify.max_user_watches = $((watcher_count * 2))" > /etc/sysctl.d/10-user-watches.conf
  fi
}

# Usage
double_inode_watchers
# to make the change persistent
double_inode_watchers --persist


답변

나는 같은 문제가 있었지만 내 것은 webpack에서 나왔다. 고맙게도 그들은 사이트에 훌륭한 솔루션 을 제공합니다 .

일부 시스템의 경우 많은 파일을 보면 CPU 또는 메모리 사용량이 많아 질 수 있습니다. 정규식을 사용하여 node_modules와 같은 거대한 폴더를 제외 할 수 있습니다.

webpack.config.js

module.exports = {
  watchOptions: {
    ignored: /node_modules/
  }
};


답변

Linux에서는 실제로 sudo로 실행했습니다.
sudo npm start