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


102

저는 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

이것은 리눅스 ulimit를 오류가 여기에 볼 수있다 stackoverflow.com/questions/34588/...
Janith

이것을 시도했습니다! 다시 같은 오류가 발생합니다!
Rehan Sattar

2
너무 많은 파일을보고있을 수 있습니다. nod_modules 디렉토리도 포함되어 있을까요?
Mikkel

node_modules 모든 패키지가 있기 때문에 필수입니다. D : 나는 그것이 나를 위해 일하지만 난 지금 얼마나 걸릴지 모르는, 내 서버의 포트에서 실행 이전 프로세스를 종료하려고했습니다
Rehan 사타르을

답변:


226

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

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

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

2
사용 sysctl --system최근 시스템에 대해 다시로드
YLJ

6
이 작업을 수행 할 때 알아야 할 다른 의미가 있습니까? 이것이 문제를 해결하는 데 도움이된다는 것을 알고 직접 시도했습니다. 그러나 나는이 수정이 야기 할 수있는 가능한 부작용에 대해 약간 회의적입니다.
Aldee

:이 위키를 확인하는 것이 좋습니다 이러한 변화의 기술적 의미에 대한 @Aldee github.com/guard/listen/wiki/...
ISAC 모 우라

이것은 또한 npm 플러그인과 관련된 많은 문제를 해결했습니다. thx
The Bumpaster

3
얼마나 많이 사용 중인지 확실하지 않은 경우 너무 많이 늘리지 않는 것이 좋습니다. 다음과 함께 사용중인 번호를 확인합니다find /proc/*/fd -user "$USER" -lname anon_inode:inotify -printf '%hinfo/%f\n' 2>/dev/null | xargs cat | grep -c '^inotify'
닉 황소에게

23

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

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

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


맞습니다! VSCode 때문입니다. 자동 저장 모드 여야합니다.
Hùng Ng Vi

19

시스템 사용자에 대한 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.


정말 고맙습니다! 나를 위해 일했다!! 하지만이 파일을 어디에 추가해야합니까?
Rehan Sattar

@RehanSattar 파일을 /etc/sysctl.d/10-user-watches.conf만들고 그 안에 넣습니다 fs.inotify.max_user_watches = 100000.
cjs 2019-04-06

완전성을 위해 여기에 넣습니다 echo fs.inotify.max_user_watches=100000 | sudo tee /etc/sysctl.d/10-user-watches.conf && sudo sysctl -p.
RedHatter 2010 년

2
사용 sysctl --system최근 시스템에 대해 다시로드
YLJ

4

변경 사항을 테스트하기 위해 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

일시적으로 테스트를위한이 힌트는 값을 매길 수 없습니다. 감사합니다
intmarinoreturn0 dec

1

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

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

0

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

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

webpack.config.js

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

-3

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


5
일반적으로 루트가 일반 사용자보다 inotify 감시 제한이 훨씬 더 높기 때문에 이것은 종종 작동하지만, 필요하지 않을 때 루트로 작업을 실행하는 것은 매우 나쁜 생각입니다. 사용자 제한을 변경하는 방법 은이 질문에 대한 내 대답을 참조하십시오 .
CJS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.