inotify supporto NFS?
Guardando intorno alla rete sembrerebbe che inotify possa supportare NFS ma in modo molto limitato.
Mostra 1
Il motivo è spiegato in queste domande e risposte StackOverflow intitolate: inotify with NFS .
estratto dalla risposta accettata
inotify richiede il supporto del kernel per funzionare. Quando un'applicazione traccia una directory, chiede al kernel di informarla quando si verificano tali cambiamenti. Quando si verifica la modifica, oltre a scrivere quelle modifiche su disco, il kernel notifica anche il processo di osservazione.
Su una macchina NFS remota, la modifica non è visibile al kernel; succede interamente da remoto. NFS è precedente a inotify e non esiste alcun supporto a livello di rete in NFS o qualcosa di equivalente.
mostra n. 2
Ricerca un po 'di più se si guarda nelle FAQ di inotify
Q: Posso guardare sysfs (procfs, nfs ...)?
Detto semplicemente: sì, ma con alcune limitazioni. Queste limitazioni variano tra le versioni del kernel e tendono a ridursi. Si prega di leggere informazioni su particolari filesystem.
Quindi è supportato?
Penso che in definitiva ciò che stai vivendo sia che NFS non fornisce una mela alle mele equivalente delle stesse funzionalità dei filesystem montati localmente.
Ad esempio da un thread Linux nfs :
- CIFS ha funzionalità di notifica integrate (oplock)
- NFS fornisce "contratti di locazione" per la notifica
Il punto qui è che un filesystem alternativo come CIFS e NFS offre un supporto molto semplice, se non addirittura diretto, per inotificare.
Stato NFS v4
estratto dall'articolo IBM sullo stato NFS v4
NFS versione 4 fornisce un protocollo per il client per stabilire o ristabilire lo stato e associa la proprietà delle successive operazioni stateful del server agli stati precedentemente stabiliti. Per risolvere il problema del client assente, il client NFS versione 4 deve aggiornare periodicamente lo stato entro il tempo di leasing specificato dal server. Al timeout del leasing, il server può rilasciare risorse per il client e renderle disponibili per altre applicazioni.
- Un client ottiene l'attributo di timeout del lease specificato dal server eseguendo un'operazione getattr. getattr non è un'operazione con stato, quindi non richiede lo stato precedente da stabilire. Un'operazione getattr può precedere un'operazione setclientid o setclientid_confirm.
- Fare riferimento all'attributo del leasetime del server NFS per l'impostazione e l'ottimizzazione dei periodi di leasing. *
inotify
eventi su NFS.