私はDebianでminidlnaを実行する専用のボックスを持っており、共有CIFSドライブからメディアファイルをインポートします。
midiaボックスを使用せずに共有に新しいファイルを追加すると、inotifyイベントが生成されないため、minidlnaは新しいファイルを認識しません。
ときどきメディアボックスでタッチを実行する新しいファイルを認識させる回避策が見つかりましたが、minidlnaはフォルダのIN_CREATEイベントとIN_MOVED_TOイベントのみを認識し、タッチはファイルフォルダの作成について認識しないため、フォルダでは機能しません。これらのイベント。
だから、この「偽の」イベントを生成する別の方法があるのか、フォルダを移動せずにフォルダに対してこれらのイベントの1つを生成する方法を知っているのだろうか。
答え1
CIFSファイルシステムを使用するとmount -o remount
どうなりますか?
ディレクトリが通知イベントを正しく実行しないため、これはCIFS実装のバグのように聞こえます。
既存のinotifyストリームにイベントを注入する方法への参照が見つかりません。そう思います。できるこれはSystemTapを使用して実行できますが、実用的ではありません。より良い解決策は、バグレポートReadyMedia
(SourceForge.netの現在のプロジェクト名)を送信することです。
SF.netでコードを少し見ただけでnotify.c
大丈夫に見えましたが、わずか30秒で時計の追加/削除コードでメモリリークが明らかになりました。 :(しかし、ディレクトリ通知を正しくサポートするようにコードを変更することは難しくないようです)。
答え2
inotifyイベントを偽にしたいファイルを知っている場合は、次の方法が役に立ちます。
chmod $(stat -c %a $filePath) $filePath
同じプロパティを再度ファイルに設定し、変更はありませんが、inotifyがトリガーされます。
変更された特定のファイルがわからない場合は、次のものをfswatch
使用できます。世論調査モニターイベントに依存しない:
fswatch -r -m poll_monitor $folderPath