首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助理解lsof和线程

帮助理解lsof和线程
EN

Unix & Linux用户
提问于 2021-10-08 19:27:29
回答 1查看 738关注 0票数 0

当我在-p $PID上使用lsof时,我只得到进程的直接线程。为什么和如何有效地使用线程和lsof?

代码语言:javascript
复制
sudo lsof -p 5344 > lsof-p5344.log
sudo lsof | grep  '\<5344\>' > lsofgrep5344.log

$ wc -l lsof*5344.log
  1,120,208 lsofgrep5344.log
      2,166 lsof-p5344.log

这些是精确过程的线条。这与儿童进程无关。在这里,我使用awk来过滤进程PID数字( lsof输出的第二列),它位于输出的第二个字段上。

代码语言:javascript
复制
$ cat lsof-p5344.log  | awk '{print $2}' | grep '^5344现在,如果我通过第一列“命令”进行筛选,那么我将看到java应用程序的不同线程,而lsof -p one将只显示主线程(例如,"COMMAND=java_daemon"),lsof | grep将会有很多。"COMMAND=pool123、JMX、Java2D、Quartz等“,"PID”全部等于5344) | wc -l
2,165

$ cat lsofgrep5344.log  | awk '{print $2}' | grep '^5344现在,如果我通过第一列“命令”进行筛选,那么我将看到java应用程序的不同线程,而D5 one将只显示主线程(例如,"COMMAND=java_daemon"),D6将会有很多。"COMMAND=pool123、JMX、Java2D、Quartz等“,"PID”全部等于5344) | wc -l
1,120,207

现在,如果我通过第一列“命令”进行筛选,那么我将看到java应用程序的不同线程,而D5 one将只显示主线程(例如,"COMMAND=java_daemon"),D6将会有很多。"COMMAND=pool123、JMX、Java2D、Quartz等“,"PID”全部等于5344)

EN

回答 1

Unix & Linux用户

发布于 2021-10-08 20:01:07

在我的系统中,lsof -k显示线程号。但我猜这些资源(文件,内存映射)分配给整个进程(线程打开的文件可以由另一个进程使用),然后挖掘线程似乎不相关。

在我的Linux系统上,我创建一个线程,该线程在打开文件后立即终止。lsof继续看到文件,而打开它的线程已经不在那里了。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/672456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档