【问题标题】:Difference between lsof -c name and lsof | grep ^name?lsof -c name和lsof的区别| grep ^ 名称?
【发布时间】:2020-05-27 22:44:37
【问题描述】:

我正在尝试使用 lsof 确定文件描述符中是否存在泄漏。 lsof 的 -c 选项定义为:

  • 为执行以 c 字符开头的命令的进程选择文件列表。

如果是这样,那为什么这两个命令报告的数字不同?

$ lsof -c gunicorn | wc -l
589
$ lsof | grep ^gunicorn | wc -l
29154

【问题讨论】:

  • 你有没有考虑过看看线条,看看有什么区别?
  • 当我用几个不同的程序尝试这个时,答案只有 1 (因为第一个命令计算标题行)。
  • 你确定你在第二个命令中有^ 字符吗?如果没有,您将匹配行中的任何位置gunicorn,而不仅仅是命令名称。

标签: linux lsof


【解决方案1】:

默认lsof 将输出主进程和带有 TID(线程 ID)的 线程 但是,如果您使用 -c 过滤输出,则仅处理打开的文件列出,没有 TID。如果您查看两个输出的标题,您会注意到这一点,“lsof -c”输出缺少 TID 列。

您可以在man page 中阅读有关 TID 的更多信息。

【讨论】:

    猜你喜欢
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2011-09-20
    相关资源
    最近更新 更多