我想更好地了解哪些程序在重启期间修改了特定文件1。我可以设置一些东西来记录此类信息吗?
轮询哪些进程现在打开文件将不起作用,因为文件可能只打开几毫秒。
可以使用内核跟踪来收集这些信息吗?
1 /var/lib/alsa/asound.state
如果你好奇的话,但我对通用解决方案感兴趣。
答案1
这可以通过该工具实现fuser
。它列出了访问特定文件的所有进程的进程 ID。尝试,
fuser -u .
...查看主目录中哪些文件处于“打开”状态、涉及的进程 ID 以及拥有这些进程的用户名。
就你的情况而言,我不确定这是否有用,因为你正在尝试监控重启。我怀疑 rc.local 在重启过程中执行得太晚,无法捕获任何有用的信息,比如
watch -n 0.5 "fuser -u /var/lib/alsa/asound.state"
嗯 - 我刚刚尝试将其转储到文件中,但输出效果不太好。但如果可以解决这个问题,那么也许可以使用 cron 来实现某些功能?