如何找出哪些程序在一段时间内修改了文件?

我想更好地了解在重新启动期间哪些程序正在修改特定文件1 。 我可以设置一些东西来记录这种信息吗?

轮询当前打开文件的进程将无法正常工作,因为文件只能打开几毫秒。

内核跟踪可以用来收集这些信息吗?


1 /var/lib/alsa/asound.state如果你很好奇,但我对一般解决方案感兴趣。

这可以通过fuser工具实现。 它列出了访问特定文件的所有进程的进程ID。 尝试,

 fuser -u . 

…查看主目录中哪些文件是“打开”的,所涉及的进程ID以及拥有这些进程的用户名。

在您的情况下,我不确定这会有用,因为您正在尝试监控重启。 我怀疑rc.local在重新启动时执行得太晚,以捕获任何有用的东西,比方说,

watch -n 0.5 "fuser -u /var/lib/alsa/asound.state"

嗯 – 我刚尝试将其转储到文件中,输出效果不是很好。 但如果可以解决这个问题,那么也许可以通过cron实现某些目标?