Я только что установил Ubuntu 16.04 и получаю это предупреждение при запуске SmartGit :
IOException: User limit of inotify watches reached
Более того, я получаю это предупреждение при запуске tail -f
:
tail: inotify resources exhausted
tail: inotify cannot be used, reverting to polling
Я никогда не получал эту ошибку с Ubuntu 14.04, а приложения и файлы, которые я использую в новой Ubuntu, были такими же, как и в предыдущей версии.
Единственное существенное отличие состоит в том, что я добавил дополнительный жесткий диск на ПК и настроил инструмент резервного копирования Ubuntu. Может ли эта проблема быть связана со вторым диском или с инструментом резервного копирования?
Текущее значение по умолчанию для Xenial - 8192 (см. Fs / notify / inotify / inotify_user.c в исходном коде ядра), вы можете проверить это, напечатав файл на стандартный вывод:
cat /proc/sys/fs/inotify/max_user_watches
8192
Вы можете поднять число, например, удваивая это до 16384, используя:
echo 16384 | sudo tee /proc/sys/fs/inotify/max_user_watches
имейте в виду, что часы inotify действительно потребляют память, я думаю, что это составляет около 160 байтов на часы в 64-битных системах.
Чтобы установить это навсегда, добавьте запись в /etc/sysctl.conf, например:
echo fs.inotify.max_user_watches=16384 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
.. или отредактируйте вручную /etc/sysctl.conf
(вам нужны права суперпользователя для его обновления), а затем запустить sudo sysctl -p
Выше ответов работают отлично, но это не объясняет почему, который я осматривал к здесь своей попытке для полного ответа -
Почему?
Программы, которые синхронизируют файлы, такие как Dropbox, мерзавец и т.д., используют inotify для замечания изменений в файловой системе. Предел может быть, видят -
cat /proc/sys/fs/inotify/max_user_watches
Для меня, он показывает 100000 . Когда этого предела недостаточно для контроля всех файлов в каталоге, он бросает эту ошибку.
<час>Увеличение количества inotify наблюдателей (Короткая версия):
, Если Вы работаете Debian, Redhat или другой подобный дистрибутив Linux , выполняет следующее в терминале:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
, Если Вы работаете ArchLinux, выполняет следующую команду вместо этого (см. здесь для почему):
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
Затем вставка это в Вашем терминале и нажатии на входит для выполнения его.
<час>Технические детали:
Слушают использование inotify по умолчанию на Linux для контроля каталогов для изменений. Весьма распространено встретиться с системным пределом на количество файлов, которые можно контролировать. Например, (64 бита) Lucid Ubuntu inotify предел установлены на 8 192.
можно получить текущий inotify предел часов файла путем выполнения:
$ cat /proc/sys/fs/inotify/max_user_watches
, Когда этого предела недостаточно для контроля всех файлов в каталоге, предел должен быть увеличен для, Слушают работу правильно.
можно установить новый предел, временный с:
$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p
, Если Вам нравится делать Ваш предел постоянным, используйте:
$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
Вы, возможно, также должны обратить внимание на значения max_queued_events и max_user_instances, если Слушают, продолжает жаловаться.
Источник: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
Можно проверить существующий Предел и на основе которого можно изменить его согласно требованию
To Check : cat /proc/sys/fs/inotify/max_user_watches
To Alter : sudo sysctl fs.inotify.max_user_watches=524288
, Это разрешит ошибку.