检测进程是否无法提交文件

时间:2017-09-29 10:00:04

标签: macos osx-yosemite

在Windows中,我使用sysinternals' processpx检测进程是否尝试访问不存在的文件。 有没有办法在osx上执行此操作?

1 个答案:

答案 0 :(得分:1)

使用dtrace脚本可以相对轻松地完成此操作。

我们要记录文件名的所有打开调用, 如果打开失败,并且errno是ENOENT,则显示进程名称,pid和文件名。

syscall::open*:entry
{ self->path = copyinstr(arg0); }

syscall::open*:return
/ arg0 < 0 && errno == ENOENT /
{ printf("%s(%d): %s", execname, pid, self->path); }

然后sudo dtrace -s <script>

在OSX上,通过系统完整性保护,很多进程都不会受到监控。