監視タスクを実行すると、なぜWaiting...Fatal error: watch ENOSPC
を受け取るのですか?どうすればこの問題を解決できますか?
いくつかの研究を行った後、解決策が見つかりました。下記のコマンドを実行してください。
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
何かを修正するためにSudo something ...
を実行する必要があるときはいつでも、何が起こっているのかを考えるのを一時停止しておくべきです。ここで受け入れられた答えは完全に有効ですが、それは問題よりもむしろ症状を治療します。 Sorta:「エラー」の問題を解決するためにより大きなサドルバッグを購入するのと同じことを、ポニーにゴミを増やすことはできません。ポニーにはすでにたくさんのゴミが積まれているので、ポニーは疲弊しています。
代替手段(おそらくポニーから余分なゴミを取り除いてダンプに入れることに匹敵する)は、実行することです:
npm dedupe
それでは、ポニーを幸せにしてくれたことを祝福してください。
手榴弾の答えを試した後 あなたは一時的な修正を使うことができる:
Sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'
これは kdsの答え と同じことをしますが、変更を保持しません。これは、システムの稼働時間が経過した直後にエラーが発生した場合に便利です。
誰がinotify instances を作成しているのかを調べるには、次のコマンドを試してください( 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
として識別することができました。 all sublimeウィンドウを閉じた後に初めてノードスクリプトを実行することができました。
クライアントPCがクラッシュし、サーバーで実行していたjest --watch
コマンドが持続した後、このエラーに遭遇し、再度jest --watch
を実行しようとしました。
上記の回答で説明した/etc/sysctl.conf
への追加はこの問題を回避しましたが、ps aux | grep node
とkill
で私の古いプロセスを見つけることも重要でした。
Linuxでは、これをコマンドで修正します。
echo fs.inotify.max_user_watches=524288 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p
私の場合、Linuxマシンで実行されているvs-codeに関連していました。 File Watcher bla blaについて表示される警告を無視しました。ソリューションは、Linuxのvs-codeドキュメントページにあります https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-この大きなワークスペースエラーエラーenospcの変更
解決策は、受け入れられた答えとほぼ同じです(同じではない場合)。vs-codeから問題に遭遇した後にここにたどり着いた人のために、より多くの説明があります。