我有 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我一直花费太长时间并且从未产生任何结果。我可以使用什么其他方法来获取打开的文件总数?我需要知道因为我的系统在一段时间后一直挂着。我可能需要增加打开的文件大小。
您可以获取由 PID 标识的进程打开的文件数,例如 15232,执行以下操作:
ls -l /proc/15232/fd | wc -l
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚以下含义:
Run Code Online (Sandbox Code Playgroud)/proc/$PID/fd/*文件。
这些链接指向 pid 为 $PID 的进程的打开文件。Fd 代表“文件描述符”,它是一个整数,用于标识类 UNIX 系统中的任何程序输入或输出。
这实际上也是lsof命令获取信息以提供进程文件的地方。
这是 linux 内核的一个特性,与发行版无关。