
В соответствии сВикипедия,
inotify — это подсистема ядра Linux, которая замечает изменения в файловой системе. Она заменила предыдущую dnotify.
Программы, синхронизирующие файлы (такие как crashplan, dropbox, git), рекомендуют в руководствах пользователя увеличить max_user_watches
(1,2,3).
Насколько я понимаю, inotify «сообщает» ОС, что файл был изменен, вместо того, чтобы требовать от ОС «искать» изменения.
Я предполагаю, что в каждом каталоге создается файл "inotify". Это правильно? Есть ли способ взаимодействовать с inotify из командной строки?
Ресурсы
Почему события inotify отличаются при монтировании NFS?
Inotifyожидание большого количества файлов в каталоге
решение1
Inotify — это внутреннее средство ядра. Нет «файла inotify». Есть выделенные системные вызовыinotify_init
,inotify_add_watch
иinotify_rm_watch
которые позволяют процессам регистрироваться, чтобы получать уведомления, когда происходят определенные события файловой системы. Когда происходит событие, процесс получает описание события через файловый дескриптор, возвращаемый inotify_init
.
ОС не «сообщается», что файл был изменен: она знает, потому что она вносит изменения. Это приложению сообщается, что файл был изменен, вместо того, чтобы искать.
Программаinotifywait
предоставляет простой способ использования inotify из командной строки.