如何使用 dtrace(或其他)找出我的 mac 上 ddclient 的配置文件在哪里?

Posted

技术标签:

【中文标题】如何使用 dtrace(或其他)找出我的 mac 上 ddclient 的配置文件在哪里?【英文标题】:How can I use dtrace (or whatever) to find out where the config file is for ddclient on my mac? 【发布时间】:2017-04-28 17:48:54 【问题描述】:

我在任何地方都找不到如何执行此操作的示例:我在我的 mac 上安装了 ddclient,但所有命令行开关似乎都没有任何效果,所以我正在尝试修改配置,但我不能找到该死的东西。

所以我想既然 dtrace 应该和 strace 一样,我可以运行 dtrace 并找出 ddclient 正在打开的文件...但是

dtrace -n 'proc:::exec-success  trace(curpsinfo->pr_psargs); '

来自handy one-liners 似乎没有接受任何参数。那么如何才能知道我的配置在哪里呢?

【问题讨论】:

【参考方案1】:

事实证明,dtrace 并非旨在为您生成进程,您必须自己在单独的 shell 中执行此操作。

correct command 实际上是:

sudo dtrace -n 'syscall::open*:entry /strstr(copyinstr(arg0), "ddclient.conf") != NULL/  printf("%s %s",execname,copyinstr(arg0)); 

然后在另一个终端中,正常运行 ddclient。您将在 dtrace 窗口中看到如下内容:

CPU     ID                    FUNCTION:NAME
  2    166                       open:entry perl5.18 /usr/local/etc/ddclient/ddclient.conf
  2    166                       open:entry perl5.18 /usr/local/etc/ddclient/ddclient.conf

这就是配置文件所在的位置。

【讨论】:

以上是关于如何使用 dtrace(或其他)找出我的 mac 上 ddclient 的配置文件在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac OS X Leopard 上的 dtrace 中使用热点探针?

是否可以在 Mac OS X 上通知 DTrace 动态生成的代码?

Mac OS X 上是不是有 dtrace ustack() 助手?

dtrace:如何从文件中获取符号链接目标

无法在 Mac OS X 上通过 jinfo 启用 DTrace 探测

在 Mac 中,执行 Dtrace,但控制台没有可显示的内容