检测进程是否无法归档文件
Detect if a process can't file a file
在 windows 中,我使用 sysinternals 的 processpx 来检测进程是否试图访问不存在的文件。
有没有办法在 osx 上执行此操作?
您可以使用 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,虽然有系统完整性保护,很多进程不会被这个监控。
在 windows 中,我使用 sysinternals 的 processpx 来检测进程是否试图访问不存在的文件。 有没有办法在 osx 上执行此操作?
您可以使用 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,虽然有系统完整性保护,很多进程不会被这个监控。