그런트 시계 오류-대기 중… 치명적인 오류 : ENOSPC 시계


답변:


1359

몇 가지 연구를 수행 한 후 해결책을 찾았습니다. 아래 명령을 실행하십시오.

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

Arch Linux의 경우이 행을 /etc/sysctl.d/99-sysctl.conf에 추가하십시오.

fs.inotify.max_user_watches=524288

45
글쎄, 내 문제를 해결 한 것 같지만 어떻게? 왜? 무슨 일이 일어나고 있는지 (또는 일어나고 있는지) 설명하는 출처가 있습니까? 아니면 스스로 할 수 있습니까? 어쨌든, 감사합니다 ...
slacktracer

116
시스템은 사용자가 볼 수있는 파일 수에 제한이 있습니다. Dropbox와 같은 다른 프로그램으로 Grunt를 실행하고 있다면 시계가 빨리 없어 질 수 있습니다. 이 명령은 사용자가 가질 수있는 최대 시계 수를 증가시킵니다.
Benjamin Manns

62
아치 리눅스의 경우 추가 fs.inotify.max_user_watches=524288/etc/sysctl.d/99-sysctl.conf다음 실행합니다 sysctl --system. 재부팅 후에도 지속됩니다. 자세한 내용은 wiki.archlinux.org/index.php/Sysctl
tnajdek

38
npm dedupe나를 위해 그것을 정리했다. 이슈
reergymerej

25
설명 : echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf /etc/sysctl.conf 파일의 끝에 "fs.inotify.max_user_watches = 524288"줄 sudo sysctl -p 에 런타임에 커널을 재구성하여 /etc/sysctl.conf 파일을 매개 변수로로드합니다.
kds

186

sudo something ...무언가를 고치기 위해 달려 가야 할 때마다 무슨 일이 일어나고 있는지 생각하기 위해 일시 ​​중지해야합니다. 여기서 받아 들인 대답은 완벽하게 유효하지만 문제가 아닌 증상을 치료합니다. 다음과 같은 문제를 해결하기 위해 더 큰 새들백을 구입하는 것과 같습니다. 오류, 조랑말에 더 많은 쓰레기를 넣을 수 없습니다. 조랑말에는 이미 많은 양의 쓰레기가 들어있어 조랑말이 피곤해집니다.

대안은 아마도 조랑말에서 과도한 쓰레기를 버리고 덤프에 넣는 것과 비슷한 것입니다.

npm dedupe

그런 다음 조랑말을 행복하게 해주신 것을 축하하십시오.


42
조랑말을 행복하게 해주셔서 감사합니다.
Christian

2
정확히 무엇입니까? 내 문제를 확실히 해결했습니다. 감사합니다 @grenade
Arjun KR

4
'npm dedupe'명령은 npm 모듈 트리를 안내하고 가능한 한 트리에서 모든 패키지를 위로 이동합니다. 결과는 평평한 나무입니다. 복제되지 않은 경우에도 패키지를 이동합니다. 당신은에서,이 경우 모듈의 다른 버전 어떻게되는지에 대해 자세히 읽을 수 docs.npmjs.com/cli/dedupe
아룬 레디를

1
그것은 도움이되지 못했습니다. 나는 함께 노력 sudo했고 지금은 나를 위해 일하고 있습니다.
asedsami

6
필자의 경우 내 문제는 많은 시계를 사용하는 것으로 보이는 Dropbox를 설치 한 것으로 보입니다. 그래서 나는 fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p대답 을 사용해야했다. 그러나 +1은 가르쳐 줘npm dedupe
Johann Echavarria

36

수류탄의 답변 을 시도한 후에 임시 수정을 사용할 수 있습니다.

sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'

이것은 kds의 답변 과 동일 하지만 변경 사항을 유지하지는 않습니다. 시스템 가동 시간 이후에 오류가 발생한 경우에 유용합니다.


3
문제는 당연히 잘못된 구성이 아니라 현재 실행중인 항목으로 인해 발생하므로 허용되는 답변이어야합니다 ( "포니"예 참조).
arielnmz

7

누가 inotify 인스턴스 를 만드는지 알아 보려면 다음 명령 ( source )을 시도하십시오 .

for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr

광산은 다음과 같습니다.

 25 /proc/2857/fd/anon_inode:inotify
  9 /proc/2880/fd/anon_inode:inotify
  4 /proc/1375/fd/anon_inode:inotify
  3 /proc/1851/fd/anon_inode:inotify
  2 /proc/2611/fd/anon_inode:inotify
  2 /proc/2414/fd/anon_inode:inotify
  1 /proc/2992/fd/anon_inode:inotify

를 사용하여 ps -p 2857프로세스 2857을로 식별 할 수있었습니다 sublime_text. 모든 숭고한 창 을 닫은 후에야 노드 스크립트를 실행할 수있었습니다.


vscode에 대해 나와 동일하지만 파일 시계와 관련이 있다고 생각합니다.
pcnate

3

클라이언트 PC가 jest --watch다운되고 서버에서 실행중인 명령이 지속 된 후이 오류가 발생 하여 jest --watch다시 실행하려고 했습니다.

/etc/sysctl.conf위의 답변 에 설명 된 내용 외에도이 문제를 해결했지만 이전 프로세스 ps aux | grep nodekill그 과정을 찾는 것이 중요 했습니다.


0

제 경우에는 Linux 컴퓨터에서 실행되는 vs 코드와 관련이 있습니다. 파일 감시자 bla bla에 관한 경고를 무시했습니다. 해결책은 Linux의 코드 대 문서 페이지에 있습니다. 있습니다. 이 큰 작업 공간 오류 오류

해결책은 허용되는 답변과 거의 동일하지만 (동일하지 않은 경우) vs 코드에서 문제가 발생한 후 여기에 오는 사람에 대한 자세한 설명이 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.