ドライブをリカバリ モードでマウントし、再起動時にストリームにゼロの fsevents を取得する FSEvents で奇妙な動作が見られます。私は次のことを行います:
- 定期的に起動
- FSEventsGetCurrentEventId() で現在のイベントを記録する
- 回復モードで起動し、監視パス内のファイルを変更します
- システムを再起動します
これが発生すると、fsevents API を使用してもイベントがまったく取得されません。通常のOSで他の変更を行った場合でも、kFSEventStreamEventFlagHistoryDoneセンチネルで送信する唯一のフラグ。
このars technicaのレビューは、他のデバイスにマウントするときにkFSEventStreamEventFlagMustScanSubDirsフラグを取得する必要があることを暗示しているようですが、その動作は見られません. 誰もこれに遭遇したことがありますか?OSがオフのときにドライブが別の場所にマウントされた場合を検出して処理するより良い方法はありますか?
更新:Linuxから起動してファイルシステムを変更するのと同じことを試みました。何があっても 0 イベントという同じ奇妙な動作は発生しませんでしたが、変更したディレクトリまたは MustScanSubdirs フラグからのイベントも取得しませんでした。
更新 2:このスレッドで受け入れられた応答は、これが発生すると、上記の状況でログが古くなっていることをタイム マシンが検出することを示しています。ログが古くなっているかどうかを検出する方法を知っている人はいますか? この日付は、フラグの代わりに使用できます。