Як працює інотифікація?


14

За даними Вікіпедії ,

inotify - це підсистема ядра Linux, яка помічає зміни у файловій системі. Він замінив попередній dnotify.

Програми, які синхронізують файли (наприклад, план збоїв, дропбокс, git), рекомендують в керівництві користувача, які збільшують користувачі max_user_watches( 1 , 2 , 3 ).

З того, що я розумію про inotify, в ОС "кажуть", що файл змінено, замість того, щоб ОС вимагала "йти шукати" зміни.

Я припускаю, що у кожному каталозі створений файл "ініціювати". Це правильно? Чи є спосіб взаємодії з inotify з командного рядка?

Ресурси
Чому інотифікація подій відрізняється на монтажі NFS?
Зачекайте велику кількість файлів у каталозі


Ви, мабуть, не знайдете відповіді на свої запитання таким чином (принаймні, не легко), але вам слід запуститись grep --exclude=arch -r inotifyу джерелах ядра Linux.

Відповіді:


21

Inotify - це внутрішнє об'єкт ядра. Немає "файла ініціації". Є спеціалізовані системні виклики inotify_init, inotify_add_watchі inotify_rm_watchякі дозволяють процесам зареєструвати себе , щоб отримувати повідомлення , коли певні події відбуваються з файлової системою. Коли подія трапляється, процес отримує опис події через дескриптор файлів, повернутий inotify_init.

ОС не "сказали", що файл змінено: він знає, тому що він робить зміни. Це додаток, в якому сказано, що файл змінено, а не шукати.

Програма inotifywaitпропонує простий спосіб використання inotify з командного рядка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.