2017-01-13 7 views
1

opensnoop от DTrace может показывать, какие файлы открываются программой/pid. Тем не менее, он не отслеживает открытые раздвоенные/vforked дети. Соответствующий dtruss имеет следующие функции.opensnoop с последующим режимом детей

Есть ли способ сообщить opensnoop также следить за детьми? Опция

ответ

2

-p фактически добавляет PID == pid проверку в сгенерированный сценарий, где pid является built in variable, представляющим текущим идентификатор процесса и PID этого значение -p варианта.

Существует действие в DTrace называется progenyof, который проверяет, что текущий процесс является ребенок (не обязательно прямой) процесса, так просто заменить эту проверку в opensnoop:

--- /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

Спасибо, это решает мой случай использования , –