linux proc文件夹

时间:2012-08-01 11:11:48

标签: linux

我正在尝试获取有关linux中进程空间(伪文件系统)的一些信息。

我发现很少有进程在我的服务器中长时间停留(确定) 但当我检查对应于该过程的proc文件夹时,我发现以下信息并且非常有趣找到(数据以粗体显示) lrwxrwxrwx 1 rmail rmail 0 Aug 1 16:11 exe - > / usr / local / bin / geneliaTesting(已删除)

dr-xr-xr-x 2 rmail rmail 0 Aug  1 16:19 attr
-r-------- 1 rmail rmail 0 Aug  1 16:19 auxv
-r--r--r-- 1 rmail rmail 0 Aug  1 16:24 cmdline
-rw-r--r-- 1 rmail rmail 0 Aug  1 16:19 coredump_filter
-r--r--r-- 1 rmail rmail 0 Aug  1 16:19 cpuset
lrwxrwxrwx 1 rmail rmail 0 Aug  1 16:11 cwd -> /home8
-r-------- 1 rmail rmail 0 Aug  1 16:19 environ
lrwxrwxrwx 1 rmail rmail 0 Aug  1 16:11 exe -> /usr/local/bin/geneliaTesting (deleted)
dr-x------ 2 rmail rmail 0 Aug  1 16:11 fd
-r--r--r-- 1 rmail rmail 0 Aug  1 16:19 io
-r-------- 1 rmail rmail 0 Aug  1 16:19 limits
 .....   and some other info.

二进制文件存在并且正被其他进程连续使用...... 任何人都有任何想法??

提前致谢。

2 个答案:

答案 0 :(得分:1)

此进程正在运行,其可执行文件在运行时已从存储设备中删除。

答案 1 :(得分:0)

尝试使用lsof .. pipe更少,以便您可以通过它读取...但这将列出所有打开的文件/套接字(-n以删除名称解析,这使得此命令需要很长时间才能完成网络套接字反向DNS等)

lsof -n | less

然后你可以搜索你的过程

如果你看到删除的部分..它可能是真的但仍在运行,因为某些东西打开了inode

如果您找到进程ID(pid),您可以查看内部

ls /proc/PID_NUMBER/fd/

如果你确实在那里看到它,你可以很好地从中取出一份副本

cp /proc/PID_NUMBER/fd/FD_NUMBER /tmp/copy_of_that_in_memory_file

然后你可以分析它..也许尝试字符串等?确定文件类型等

file / tmp / copy_of_that_in_memory_file

使用字符串

strings /tmp/copy_of_that_in_memory_file | less

不能说我知道那是什么......

一旦你知道了pid,

strace可以帮助你找出它做的事情。使用-f跟踪打开的孩子..

strace -fp PID_NUMBER