Ошибка при прослушивании: невозможно контролировать каталоги изменений
Я получаю следующую ошибку при запуске моего приложения rails на сервере Ubuntu
FATAL: Ошибка при прослушивании: невозможно контролировать каталоги для изменений. Посещение https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchersдля получения информации о том, как исправить это.
Я следил за приведенной выше страницей GitHub, но мне не удалось написать max_user_watches, которые были установлены в 8192, и я хочу установить это на 524288.
в cat /proc/sys/fs/inotify/max_user_watches
файл находился только в режиме чтения. Я пытался предоставить разрешения на запись, но я получал разрешение на отказ в ошибке даже при доступе с правами root.
Спасибо заранее!
Ответы
Ответ 1
1000 слишком мало, попробуйте 524288, как описано на вики-странице: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
Listen использует inotify по умолчанию в Linux для мониторинга каталогов изменения. Нередко встречается системный лимит на количество файлов, которые вы можете отслеживать. Например, Ubuntu Lucid (64bit) inotify ограничение установлено на 8192.
Если вы используете 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
Ответ 2
Просто попробуйте выполнить это с вашей консоли
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Надеюсь, это сработает для вас.
Ссылки: нажмите здесь
Ответ 3
Для тех, кто может иметь эту проблему. У меня было отключение виртуальной машины, из-за чего предыдущий сервер rails работал. Запуск ниже решил проблему без необходимости увеличивать количество наблюдателей.
kill -9 $(lsof -i tcp:3000 -t)
Ответ 4
В моем случае мне просто нужно выключить терминал, а затем запустить его снова. Это работает, когда я пытаюсь запустить команду rails c
:)
Ответ 5
Эта ошибка произошла для меня, так как у меня было несколько запущенных процессов ruby, о которых я не знал. Просто нужно их прекратить и все хорошо