Існує дві причини lsof | wc -l
, які не враховують дескрипторів файлів. Одне полягає в тому, що в ньому перераховані речі, які не є відкритими файлами, наприклад завантажені динамічно пов'язані бібліотеки та поточні робочі каталоги; їх потрібно відфільтрувати. Інша полягає в тому, що lsof
для запуску потрібен певний час, тому можна пропустити файли, які відкриваються або закриваються під час роботи; тому кількість перелічених відкритих файлів є приблизною. Перегляд /proc/sys/fs/file-nr
дає точне значення в певний момент часу.
cat /proc/sys/fs/file-nr
корисний лише тоді, коли вам потрібна точна цифра, головним чином для перевірки вичерпаності ресурсів. Якщо ви хочете перерахувати відкриті файли, вам потрібно зателефонувати lsof
або скористатися якимсь еквівалентним методом, таким як тралінг /proc/*/fd
вручну.