inotify 是如何運作的?

inotify 是如何運作的?

根據維基百科,

inotify 是一個 Linux 核心子系統,它注意到檔案系統的變更。它取代了之前的 dnotify。

同步檔案的程式(例如 crashplan、dropbox、git)在使用者指南中建議使用者增加max_user_watches1,2,3)。

根據我對 inotify 的理解,作業系統被「告知」檔案已被更改,而不是要求作業系統「尋找」更改。

我假設每個目錄中都創建了一個“inotify”檔案。它是否正確?有沒有辦法從命令列與 inotify 互動?

資源
為什麼 inotify 事件在 NFS 掛載上不同?
Inotifywait 目錄中存在大量文件

答案1

Inotify 是一個內部核心工具。沒有「inotify 檔案」。有專門的系統調用inotify_init,inotify_add_watchinotify_rm_watch允許進程註冊自己,以便在發生某些檔案系統事件時收到通知。當事件發生時,進程會透過傳回的檔案描述符接收事件的描述inotify_init

作業系統不會「被告知」檔案已被更改:它知道,因為它正在進行更改。應用程式會被告知文件已更改,而不必去查找。

該程式inotifywait提供了一種從命令列使用 inotify 的簡單方法。

相關內容