我正在尝试获取有关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.
二进制文件存在并且正被其他进程连续使用...... 任何人都有任何想法??
提前致谢。
答案 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