Inotifyの監視制限を1024に設定しています(デフォルトは128ですか?)。それにも関わらず、yeoman、Guard、Dropboxは常に失敗し、inotifyの制限を引き上げるように指示します。そうする前に、すべてのウォッチを消費しているものを知りたい(Dropboxにファイルがほとんどない)。
現在登録されているウォッチを確認するための/ procまたは/ sysの領域、または実行可能なツールはありますか?
inotifyファイルシステムオプション
sysctl fs.inotify
開いたファイル
lsof | grep inotify | wc -l
このような値を増やします
sysctl -n -w fs.inotify.max_user_watches=16384
sysctl -n -w fs.inotify.max_user_instances=512
inotify
ウォッチのデフォルトの最大数は8192です。 / proc/sys/fs/inotify/max_user_watchesに書き込むことで増やすことができます。sysctl fs.inotify.max_user_watches
を使用して、現在の値を確認できます。
tail -f
を使用して、OSがinotify
最大監視制限を超えているかどうかを確認します。tail -f
コマンドの内部実装は、inotify
メカニズムを使用してファイルの変更を監視します。inotify
ウォッチを使い果たした場合、ほとんどの場合、このエラーが発生します。
tail:inotifyは使用できません。ポーリングに戻ります:開いているファイルが多すぎます
どのinotify
ウォッチが登録されているかを調べるには、 this および this を参照します。試しましたが、理想的な結果が得られませんでした。 :
参照:
---(https://askubuntu.com/questions/154255/how-can-i-tell-if-i-am-out-of-inotify-watches
https://unix.stackexchange.com/questions/15509/whos-consuming-my-inotify-resources
https://bbs.archlinux.org/viewtopic.php?pid=1340049
これはGoogleの結果で高いため、Unix/Linux StackExchangeに関する同様の質問から my answer の一部をコピーアンドペーストしています:
私はこの問題にぶつかりましたが、これらの答えのどれも「「各プロセスが現在使用しているwatches数は?」ワンライナーはすべて、開いているインスタンスの数を提供します。これは、ストーリーの一部にすぎません。トレースは、新しい時計が開かれているのを確認する場合にのみ役立ちます。
これにより、開いているinotify
インスタンスのリストと、それらが持っているウォッチの数の数を含むファイルが、pidとバイナリとともに取得されます。ウォッチカウントで降順に並べ替えて、それらを生成しました。
Sudo lsof | awk '/anon_inode/ { gsub(/[urw]$/,"",$4); print "/proc/"$2"/fdinfo/"$4; }' | while read fdi; do count=$(Sudo grep -c inotify $fdi); exe=$(Sudo readlink $(dirname $(dirname $fdi))/exe); echo -e $count"\t"$fdi"\t"$exe; done | sort -nr > watches
その大きな混乱が何をするのか、そしてその理由に興味があるなら、 元の答え について詳しく説明しました。
次の端末コマンドは、Ubuntu 16.04マシンで完璧に機能しました。
for foo in /proc/\*/fd/*; do readlink -f $foo; done |grep inotify |cut -d/ -f3 |xargs -I '{}' -- ps --no-headers -o '%p %U %a' -p '{}' |uniq -c |sort -n
私の問題は、HDDの大部分がSublime Textのフォルダーとしてロードされていたことです。の間に /opt/sublime_text/plugin_Host 8992
および/opt/sublime_text/sublime_text
、Sublimeには18のinotifyのインスタンスがありましたが、私のプログラムの残りはすべて1〜3でした。
Ionic Mobile App開発を行っていたため、Sublime設定の無視リストに大きなNode.jsフォルダー「node_modules」を追加することで、インスタンスの数を5減らしました。
"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]
おもう
Sudo ls -l /proc/*/fd/* | grep notify
役に立つかもしれません。 inotify fdが登録されているPIDのリストを取得します。
これ以上の情報を得る方法がわかりません! HTH