lsof 命令对于特定进程 ID 花费的时间太长

use*_*596 5 centos lsof

我有 Centos 6.7 通过包装程序运行 java 应用程序。所以首先我运行了这个。

lsof -p 15200 | wc -l and I got the results immediately as 200
Run Code Online (Sandbox Code Playgroud)

接下来我运行了这个 lsof -p 15232 | wc -l我一直花费太长时间并且从未产生任何结果。我可以使用什么其他方法来获取打开的文件总数?我需要知道因为我的系统在一段时间后一直挂着。我可能需要增加打开的文件大小。

Rui*_*iro 7

您可以获取由 PID 标识的进程打开的文件数,例如 15232,执行以下操作:

ls -l /proc/15232/fd | wc -l
Run Code Online (Sandbox Code Playgroud)

Debian 列表

我试图弄清楚以下含义:

/proc/$PID/fd/*
Run Code Online (Sandbox Code Playgroud)

文件。

这些链接指向 pid 为 $PID 的进程的打开文件。Fd 代表“文件描述符”,它是一个整数,用于标识类 UNIX 系统中的任何程序输入或输出。

这实际上也是lsof命令获取信息以提供进程文件的地方。

这是 linux 内核的一个特性,与发行版无关。