txt
根据我的经验,输出中文件描述符为的文件lsof
是可执行文件本身和共享对象。lsof
手册页说它意味着“程序文本(代码和数据)”。
在调试问题时,我发现大量数据文件(具体来说,ElasticSearch 数据库索引文件)报告lsof
为txt
。这些肯定不是可执行文件。该进程是 ElasticSearch 本身,它是一个 Java 进程,如果这有助于为某人指明正确的方向。
我想了解此过程如何打开和使用这些文件,并以这种方式进行报告。我试图了解一些内存利用率,我怀疑这些打开的文件与我看到的一些指标有某种关联。
系统是Solaris 10 x86。
答案1
在 Solaris 上,映射到进程内存空间的所有内容都将被列出lsof
,txt
无论是启动的可执行文件,还是 ld.so 映射的可执行共享对象,还是应用程序直接映射的任何数据文件。
在 Linux 上,只有已启动的可执行文件才会被列为txt
,映射到内存空间的所有其他文件都将显示为mem
(可执行共享对象和数据文件)。