gpt4 book ai didi

linux - lsof 打开文件数不相同

转载 作者:太空宇宙 更新时间:2023-11-04 04:33:35 27 4
gpt4 key购买 nike

我想知道每个进程打开的文件数,因此我使用 lsof 命令:

lsof -n | awk '{print $2}'|sort |uniq -c |sort -nr| more

我发现一个 pid "934" 的进程打开了 11374 个文件,但是当我使用

lsof -p 934 | wc -l 

据了解,结果显示只打开了122个文件。

下图显示了我使用的命令。

enter image description here

最佳答案

为什么两个计数不同?

原因一:

lsof 生成一个 header ,它已在您的 lsof -p xxx 中计数,但是,在您的 awk 过滤中,它被过滤掉了( header 没有 $2==pid),因此计数必须不同。然而我们看到差异是>>1,所以原因二来了。

原因二:(主要原因)

lsof 将默认始终输出线程 ID(TID 请阅读手册页了解详细信息)。但是,如果添加 -p xxx,则仅列出进程打开的文件,而不列出 TID。

如果你想证明这一点,请尝试以下两行:

lsof -p somePid|wc -l

还有

lsof|awk '$2==somePid||NR==1'|wc -l

输出应该是相同的。

您应该自定义输出格式,以实现您的目标。

关于linux - lsof 打开文件数不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41142903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com