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