İnotify nasıl çalışır?


14

Wikipedia'ya göre ,

inotify, dosya sistemindeki değişiklikleri fark eden bir Linux çekirdek alt sistemidir. Önceki dnotify'ın yerini aldı.

Dosyaları senkronize eden programlar (kilitlenme planı, dropbox, git gibi), kullanıcı kılavuzlarında kullanıcının artmasını önerir max_user_watches( 1 , 2 , 3 ).

İnotify hakkında anladığım kadarıyla, işletim sistemine değişiklikler için "aramaya" gitmek yerine, bir dosyanın değiştirildiğine "söylendi".

Her dizinde oluşturulan bir "inotify" dosyası olduğunu varsayalım. Bu doğru mu? Komut satırından inotify ile etkileşime girmenin bir yolu var mı?

Kaynaklar
Bir NFS montajındaki inotify olayları neden farklıdır?
Bir dizindeki çok sayıda dosya için Inotifywait


Muhtemelen sorularınızın cevaplarını bu şekilde bulamazsınız (en azından kolay değil) ama grep --exclude=arch -r inotifyLinux çekirdek kaynaklarında çalışmalısınız.

Yanıtlar:


21

Inotify bir iç çekirdek tesisidir. “İnotify dosyası” yok. Orada adanmış sistem çağrıları vardır inotify_init, inotify_add_watchve inotify_rm_watchbu süreçler belli dosya sistemi olay meydana geldiğinde kendilerini haberdar olmak için kayıt izin verir. Olay gerçekleştiğinde, işlem, döndürülen dosya tanımlayıcı aracılığıyla olayın bir açıklamasını alır inotify_init.

İşletim sistemi bir dosyanın değiştirildiğini “söylemez”: bilir, çünkü değişikliği yapar. Bakmak yerine bir dosyanın değiştirildiğini söyleyen uygulamadır.

Program inotifywaitkomut satırından inotify kullanmak için basit bir yol sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.