inotifyはどのように機能しますか?


14

ウィキペディアによると、

inotifyは、ファイルシステムの変更を認識するLinuxカーネルサブシステムです。以前のdnotifyを置き換えました。

(例えばのCrashPlan、ドロップボックス、Gitのような)同期ファイルはユーザーガイドにお勧めすることをプログラムのユーザ増加することmax_user_watches123)。

私がinotifyについて理解していることから、OSは、OSが変更を「探す」ことを要求するのではなく、ファイルが変更されたことを「通知」します。

すべてのディレクトリに「inotify」ファイルが作成されていると想定しています。これは正しいです?コマンドラインからinotifyと対話する方法はありますか?

リソース
NFSマウントでinotifyイベントが異なるのはなぜですか?
ディレクトリ内の多数のファイルのInotifywait


おそらく、この方法では(少なくとも、簡単にではありませんが)質問に対する答えは見つかりませんgrep --exclude=arch -r inotifyが、Linuxカーネルソースで実行する必要があります。

回答:


21

Inotifyは内部カーネル機能です。「inotifyファイル」はありません。そこに専用のシステムコールがありinotify_initinotify_add_watchそしてinotify_rm_watchそれは、特定のファイルシステムイベントが発生したときに自分自身を登録するためのプロセスが通知されることを可能にします。イベントが発生すると、プロセスはによって返されたファイル記述子を介してイベントの説明を受け取りますinotify_init

OSは、ファイルが変更されたことを「語る」のではなく、変更を行っているので、それを知っています。ファイルを見ただけでなく、ファイルが変更されたことを通知するのはアプリケーションです。

このプログラムinotifywaitは、コマンドラインからinotifyを使用する簡単な方法を提供します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.