子プロセスを生成し、それが変更、作成、または削除するファイルを知る必要があります。
sudo ができないので dtrace が使えません。
FSEvents は、システム上のすべてのプロセスで発生した変更を報告し、自分の子プロセスだけに関心があるため、使用できません。
子プロセスを生成し、それが変更、作成、または削除するファイルを知る必要があります。
sudo ができないので dtrace が使えません。
FSEvents は、システム上のすべてのプロセスで発生した変更を報告し、自分の子プロセスだけに関心があるため、使用できません。
DYLD_INSERT_LIBRARIES
(Mac OS の に相当する) を使用して、関心のある libc ルーチンまたはシステム コールの独自の監視ルーチンを挿入することを検討しLD_PRELOAD
ます。たとえば、my_open()
関心のあるトレースを実行するルーチンを作成してから、open()
残りの作業を行うには、実際の libcを使用します。トラップするすべてのファイルシステム関連の呼び出し (開く、閉じる、読み取る、書き込む、名前を変更するなど) に対してこれを行う必要がありDYLD_INSERT_LIBRARIES
ます。子プロセスを生成する前に、環境変数を設定できるはずです。 、ルートである必要はありません。
これに関する詳細と例は、Amit Singh による「Mac OS X Internals: A Systems Approach」の第 2 章にあります。コピーをお持ちでない場合は、Google ブックスで関連するセクションを読むことができます。