ファイル記述子を消費するものは何ですか?

ファイル記述子を消費するものは何ですか?

開いたファイルが多すぎてアプリがクラッシュする問題が発生しました。実行すると、lsof | wc -l3447067個の開かれたファイル記述子があると表示されますが、何がそれほど多くのファイル記述子を使用しているのかわかりません。

私はcat /etc/passwdシステム内のすべてのユーザーを見つけ、lsof -u <user> | wc -lそのすべてのユーザーを見つけるために走りましたが、使用された記述子の数に近づくこともできませんでした。

何がそれほど多くのファイル記述子を消費しているかを判断するための合理的な方法はありますか?

ベストアンサー1

for dir in /proc/[1-9]*/fd; do
    echo "$dir"
    cd "$dir" &>/dev/null || continue
    set -- *
    echo $#
    echo
done

これが出力ですlsof。なぜ違うのか分からない。

lsof -F p | sort | uniq -c | sort -n

おすすめ記事