グラントウォッチエラー-待機中…致命的なエラー:ENOSPCを監視


524

Waiting...Fatal error: watch ENOSPC監視タスクを実行するとなぜが表示されるのですか?この問題を解決するにはどうすればよいですか?


13
これを見る人にとっては、これは特定のものではなく、その下にあるinotifygruntを使用するすべてのプログラムです。unix.stackexchange.com/questions/13751/…に説明があります。
Jesse Good、

回答:


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 2013

116
システムには、ユーザーが監視できるファイルの数に制限があります。Dropboxなどの他のプログラムでGruntを実行している場合は、時計がすぐになくなる可能性があります。このコマンドは、ユーザーが持つことができる時計の最大量を増やします。
Benjamin Manns 2013

62
Arch Linuxの場合、に追加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 2014年

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
ポニーを幸せにしてくれてありがとう。
クリスチャン

2
正確には何をしますか?それは確かに私の問題を解決しました。ありがとう@grenade
Arjun KR

4
'npm dedupe'コマンドはnpmモジュールツリーをウォークスルーし、すべてのパッケージをツリー内で可能な限り上に移動します。結果は平らな木です。複製されていなくてもパッケージを移動します。この場合にモジュールの異なるバージョンで何が起こるかについての詳細は、docs.npmjs.com / cli / dedupe
Arun Reddy

1
それは助けにはならなかった、私は試しました、sudoそして今それは私のために働いています。
asedsami 2016年

6
私の場合、私の問題は、多くの時計を使用しているように見えるDropboxがインストールされていることです。だから私は使用しなければなりfs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -pませんでした:受け入れられた回答とnpm dedupe
同じ

36

手榴弾の答えを試した後、一時的な修正を使用できます:

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

これはkdsの回答と同じことを行いますが、変更を永続化しません。これは、システムのアップタイムの直後にエラーが発生した場合に役立ちます。


3
この問題は当然のことながら、現時点で実行されているものによって引き起こされるものであり、不適切な構成によって引き起こされるものではありません(「ポニー」の例を参照)。
arielnmz 2017

7

inotify インスタンスを作成しているユーザーを確認するには、次のコマンドを試してください(ソース)。

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 2018

3

クライアントPCがクラッシュjest --watchし、サーバーで実行していたコマンドが持続し、jest --watch再度実行しようとした後、このエラーに遭遇しました。

ほかには、/etc/sysctl.confこの問題に取り組ん上記の回答で説明したが、経由して私の古いプロセスを見つけることも重要だったps aux | grep nodekillそれ。


0

私の場合、それは私のLinuxマシンで実行されているvs-codeに関連していました。File Watcher bla blaについてポップアップした警告を無視しました。解決策は、linuxのvs-code docsページにありますhttps://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in- this-large-workspace-error-enospc

解決策は、受け入れられた回答とほぼ同じ(同じではない)ですが、vs-codeの問題に遭遇した後にここに来た人のためのより多くの説明があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.