2017-01-13 6 views
1

opensnoopDTraceは、どのファイルがプログラム/ pidによって開かれているかを表示できます。しかし、forked/vforkedの子どもたちによって開かれることはありません。関連するdtrussにはこの機能があります。opensnoopのfollow childrenモード

opensnoopにも子供をフォローするよう指示する方法はありますか?

答えて

2

-pオプションは、実際には、現在のプロセスIDを表す、pidbuilt in variableで生成されたスクリプトにPID == pidチェックを追加し、PID-pオプション値です。そう単純opensnoopでそのチェック置き換える現在のプロセスは、プロセスの子(直接の必要はありませんが)であることを確認progenyofと呼ばDTraceの中でアクションがあり

、:

--- /usr/dtrace/DTT/opensnoop Wed Jun 25 01:34:47 2014 
+++ opensnoop Fri Jan 13 17:43:41 2017 
@@ -199,7 +199,7 @@ 

     /* check each filter */ 
     (OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1; 
-  (OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1; 
+  (OPT_pid == 1 && progenyof(PID)) ? self->ok = 1 : 1; 
     /* OPT_file is checked on return to ensure pathp is mapped */ 
} 
+0

おかげで、これは私のユースケースを解決します。 –

関連する問題