Come funziona inotify?


14

Secondo Wikipedia ,

inotify è un sottosistema del kernel Linux che rileva le modifiche al file system. Ha sostituito il precedente dnotify.

I programmi che sincronizzano i file (come crashplan, dropbox, git) raccomandano nelle guide dell'utente che l'utente aumenta max_user_watches( 1 , 2 , 3 ).

Da quello che ho capito su inotify, il sistema operativo viene "detto" che un file è stato modificato, invece di richiedere al sistema operativo di "cercare" le modifiche.

Presumo che ci sia un file "inotify" creato in ogni directory. È corretto? C'è un modo per interagire con inotify dalla riga di comando?

Risorse
Perché gli eventi di inotify sono diversi su un mount NFS?
Inotify attende un numero elevato di file in una directory


Probabilmente non troverai le risposte alle tue domande in questo modo (almeno, non facilmente) ma dovresti eseguire grep --exclude=arch -r inotifyi sorgenti del kernel Linux.

Risposte:


21

Inotify è una funzione interna del kernel. Non esiste un "file inotify". Ci sono chiamate di sistema dedicato inotify_init, inotify_add_watche inotify_rm_watchche consentono ai processi di registrarsi per essere avvisati quando certi eventi accadono filesystem. Quando si verifica l'evento, il processo riceve una descrizione dell'evento tramite il descrittore di file restituito da inotify_init.

Il sistema operativo non viene "detto" che un file è stato modificato: lo sa, perché sta facendo il cambiamento. È l'applicazione che dice che è stato modificato un file invece di cercare.

Il programma inotifywaitfornisce un modo semplice per utilizzare inotify dalla riga di comando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.