我不明白 lsof 命令的输出。
当我写
lsof -p PID
Run Code Online (Sandbox Code Playgroud)
我得到 4 行,当我写
lsof | grep PID
Run Code Online (Sandbox Code Playgroud)
我得到数百行。
它不应该返回相同的结果吗?
谢谢你的回复。这里是输出。看起来是子流程还是这个任务是什么意思?
lsof -p 29076
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
lsof |grep 29076|head -20
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
java 29076 300 pr cwd unknown /proc/29076/task/300/cwd (readlink: Permission denied)
java 29076 300 pr rtd unknown /proc/29076/task/300/root (readlink: Permission denied)
java 29076 300 pr txt unknown /proc/29076/task/300/exe (readlink: Permission denied)
java 29076 300 pr NOFD /proc/29076/task/300/fd (opendir: Permission denied)
java 29076 329 pr cwd unknown /proc/29076/task/329/cwd (readlink: Permission denied)
java 29076 329 pr rtd unknown /proc/29076/task/329/root (readlink: Permission denied)
java 29076 329 pr txt unknown /proc/29076/task/329/exe (readlink: Permission denied)
java 29076 329 pr NOFD /proc/29076/task/329/fd (opendir: Permission denied)
java 29076 330 pr cwd unknown /proc/29076/task/330/cwd (readlink: Permission denied)
java 29076 330 pr rtd unknown /proc/29076/task/330/root (readlink: Permission denied)
java 29076 330 pr txt unknown /proc/29076/task/330/exe (readlink: Permission denied)
java 29076 330 pr NOFD /proc/29076/task/330/fd (opendir: Permission denied)
java 29076 331 pr cwd unknown /proc/29076/task/331/cwd (readlink: Permission denied)
java 29076 331 pr rtd unknown /proc/29076/task/331/root (readlink: Permission denied)
java 29076 331 pr txt unknown /proc/29076/task/331/exe (readlink: Permission denied)
java 29076 331 pr NOFD /proc/29076/task/331/fd (opendir: Permission denied)
Run Code Online (Sandbox Code Playgroud)
没有看到实际输出,很难确切地说出发生了什么,但我猜这是因为该lsof -p PID
命令只是打印出由指定 PID 打开的文件,同时lsof | grep PID
打印出“PID”所在的任何行位于线路中的任何位置。例如,如果您正在搜索 PID=123,那么您的grep
选项还将打印 PID 的 1231、1232、1233 等行以及位于完整路径中任何位置为 123 的文件夹中的任何文件。
编辑:在您的具体示例中,不同之处在于lsof
忽略线程打开的文件。如果查看grep
示例中的输出,第三列是“TID”或线程 ID。没有 TID 的行与您使用该-p
选项时看到的相匹配。带有 TID 的行(即由其他线程打开的行)是额外的。
归档时间: |
|
查看次数: |
35915 次 |
最近记录: |