複数のサブプロセスを生成するプログラムがあります。
このプログラムとそのサブルーチンがどのファイルを作成、削除、変更するかを知りたいです。
inotifywait
どのファイルがアクセスされているかを知らせることができますが、どのプロセスがそのファイルにアクセスしているかはわかりません。モニターを設定するには、ファイルを作成する場所を知っておく必要があります。auditctl
どのプロセスがファイルを変更したかを記録できますが、履歴を設定するにはファイルがどこにあるかを知る必要があります。lsof
すべてのファイルを表示しますが、リアルタイム追跡のための良い解決策ではないようです。
どのファイルが動作しているかを知らずに、プログラムのファイル動作を監視する機能はありますか?
ベストアンサー1
Linuxでは、strace
次の種類のイベントを監視できます。
strace -f -p <PID> -e trace=file
Solarisではを使用できます。 Solaris 11にデフォルトでインストールされているdtrace
DTraceToolkitツールを見てください。opensnoop
/usr/dtrace/DTT/Bin/opensnoop
/usr/dtrace/DTT/Bin/opensnoop -p <pid>