lsof中的txt文件描述符

根据我的经验,在lsof输出中具有txt文件描述符的文件是可执行文件本身和共享对象。 lsof手册页说这意味着“程序文本(代码和数据)”。

在debugging问题时,我发现lsof报告为txt的大量数据文件(特别是ElasticSearch数据库索引文件)。 这些绝对不是可执行文件。 该过程是ElasticSearch本身,这是一个Java过程,如果这有助于指向某个人正确的方向。

我想了解这个过程是如何打开的,并使用这些文件来以这种方式进行报告。 我试图了解一些内存使用情况,我怀疑这些打开的文件与某些指标有关。

系统是Solaris 10 x86。

在Solaris上,映射到进程的内存空间的所有内容都将被lsof列为txt ,而不pipe启动的可执行文件,ld.so映射的可执行共享对象,还是由应用程序直接映射的任何数据文件。

在Linux上,只有已启动的可执行文件将被列为txt ,映射到内存空间的所有内容都将显示为mem (可执行的共享对象和数据文件)。