如何使用 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() 助手?