![持续监视进程打开/访问的文件](https://linux22.com/image/1293079/%E6%8C%81%E7%BB%AD%E7%9B%91%E8%A7%86%E8%BF%9B%E7%A8%8B%E6%89%93%E5%BC%80%2F%E8%AE%BF%E9%97%AE%E7%9A%84%E6%96%87%E4%BB%B6.png)
lsof -p 12345
将列出 pid 为 12345 的进程在特定时刻打开的所有文件。
我们如何才能从开始到结束持续监视一个进程(直到进程终止)以列出/显示该进程在整个生命周期内访问的每个文件?
答案1
尝试一下strace -p 12345
;它应该可以实现您想要实现的目标。
可以过滤输出以仅显示打开的文件(Dan D. 的评论):
strace -e open -p 12345
笔记:您还可以使用 快速跟踪正在运行的进程strace -e open <command>
。
答案2
新的实用工具脂肪痕迹将执行以下操作:https://launchpad.net/fatrace/
sudo fatrace | grep '(6514)'
不要使用 -p 选项,它的含义与 lsof 或其他实用程序中的含义相反。
答案3
这将循环重新运行您的命令并每次清除屏幕:
watch "lsof -p 12345"
警告:这将错过快速文件访问,并且仅适用于查看长期文件