为什么lsof会抱怨tracefs?

每次执行lsof都会发出有关TraceFS的警告:

 $ lsof any-file lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing Output information may be incomplete. $ mount | grep trace tracefs on /sys/kernel/debug/tracing type tracefs (rw,relatime) 

(这是在Ubuntu 15.10上,完全更新)

在正常操作期间安装TraceFS是否正常?
如果是这样,我怎么能告诉lsof跳过它?

您的问题的答案在于文件权限:

尝试:

 $ ls -l /sys/kernel/debug/tracing ls: cannot access '/sys/kernel/debug/tracing': Permission denied $ ls -l /sys/kernel total 0 ... drwx------ 31 root root 0 2016-06-15 11:06:47 debug ... 

因此,不允许普通用户访问/sys/kernel/debug/tracing ,似乎没有办法让lsof避免访问它。

然后我们可以讨论这是否是一个错误,但你的问题的答案归结为这个。

我遇到了同样的问题,这个答案帮助我更好地理解了这个问题。

我发现删除烦人警告的一种方法是卸载debugfs

 mount | grep debugfs none on /sys/kernel/debug type debugfs (rw,_netdev) sudo umount $(mount | grep debugfs | awk '{print $3}') 

如果您现在运行lsof ,则没有警告。