Menurut Wikipedia ,
inotify adalah subsistem kernel Linux yang memperhatikan perubahan pada sistem file. Itu menggantikan dnotify sebelumnya.
Program yang menyinkronkan file (seperti crashplan, dropbox, git) merekomendasikan dalam panduan pengguna bahwa pengguna meningkat max_user_watches
( 1 , 2 , 3 ).
Dari apa yang saya pahami tentang inotify, OS "diberitahu" bahwa file telah diubah, daripada meminta OS untuk "pergi mencari" untuk perubahan.
Saya berasumsi bahwa ada file "inotify" yang dibuat di setiap direktori. Apakah ini benar? Apakah ada cara untuk berinteraksi dengan inotify dari baris perintah?
Sumber Daya
Mengapa peristiwa yang tidak diberitahukan berbeda pada pemasangan NFS?
Tidak menunggu untuk banyak file dalam direktori
grep --exclude=arch -r inotify
di sumber kernel Linux.Jawaban:
Inotify adalah fasilitas kernel internal. Tidak ada "file inotify". Ada panggilan sistem khusus
inotify_init
,inotify_add_watch
daninotify_rm_watch
yang memungkinkan proses untuk mendaftarkan diri untuk diberi tahu ketika peristiwa sistem file tertentu terjadi. Ketika acara tersebut terjadi, proses menerima deskripsi acara melalui deskriptor file yang dikembalikan olehinotify_init
.OS tidak "diberitahu" bahwa suatu file telah diubah: ia tahu, karena ia melakukan perubahan. Ini adalah aplikasi yang memberi tahu bahwa file telah diubah alih-alih harus mencari.
Program ini
inotifywait
menyediakan cara sederhana untuk menggunakan inotify dari baris perintah.sumber