想要弄清楚哪个进程 (pid) 正在删除 Mac OS X 上的文件

想要弄清楚哪个进程 (pid) 正在删除 Mac OS X 上的文件

我遇到了一个奇怪的问题,我的 /tmp 文件夹中的文件有时会在创建后 5 分钟内被删除。这似乎也不是定期调度程序的标准 clean-tmps 部分,而是默认的 3 天无访问权限或其他什么的。而且我也没有重启我的机器,它一直处于开启状态。我只是循环执行ls -l /tmp/<file>,经过一段不确定的时间后,通常在几分钟内,它就会消失。

我试图弄清楚哪个过程正在执行删除操作,我已尝试过 fswatch 如下:

touch /tmp/bar;
fswatch -0 -l 0.1 --event Removed --event Link /tmp/ | xargs -0 -n 1 lsof /tmp/bar
# some time later...
lsof: status error on /private/tmp/bar: No such file or directory

当然,由于文件已被删除,上述命令将不再起作用(文件消失之前lsof还有机会使用它来找到 pid)。

有没有办法查看哪个进程正在删除文件?

如果这很重要的话,我正在运行 MacOSX 版本 12.5 (21G72)。

相关内容