Wie funktioniert inotify?

Wie funktioniert inotify?

EntsprechendWikipedia,

inotify ist ein Linux-Kernel-Subsystem, das Änderungen am Dateisystem erkennt. Es ersetzt das bisherige dnotify.

Programme, die Dateien synchronisieren (wie Crashplan, Dropbox, Git), empfehlen in Benutzerhandbüchern, dass der Benutzer den Wert erhöht max_user_watches(1,2,3).

So wie ich inotify verstehe, wird dem Betriebssystem „mitgeteilt“, dass eine Datei geändert wurde, anstatt dass das Betriebssystem selbst nach Änderungen „suchen“ muss.

Ich gehe davon aus, dass in jedem Verzeichnis eine „inotify“-Datei erstellt wird. Ist das richtig? Gibt es eine Möglichkeit, über die Befehlszeile mit inotify zu interagieren?

Ressourcen
Warum sind Inotify-Ereignisse bei einer NFS-Einbindung anders?
Inotifywait für eine große Anzahl von Dateien in einem Verzeichnis

Antwort1

Inotify ist eine interne Kernel-Funktion. Es gibt keine „inotify-Datei“. Es gibt dedizierte Systemaufrufeinotify_init,inotify_add_watchUndinotify_rm_watchdie es Prozessen ermöglichen, sich selbst zu registrieren, um benachrichtigt zu werden, wenn bestimmte Dateisystemereignisse eintreten. Wenn das Ereignis eintritt, erhält der Prozess eine Beschreibung des Ereignisses über den von zurückgegebenen Dateideskriptor inotify_init.

Dem Betriebssystem wird nicht „gesagt“, dass eine Datei geändert wurde: Es weiß es, weil es die Änderung vornimmt. Die Anwendung erfährt, dass eine Datei geändert wurde, statt dass sie danach suchen muss.

Das Programminotifywaitbietet eine einfache Möglichkeit, inotify von der Befehlszeile aus zu verwenden.

verwandte Informationen