2012-08-01 45 views
0

我試圖在linux中獲得關於進程空間(僞文件系統)的一些信息。linux proc文件夾

上午找到幾個過程被stucked彌補長時間在我的服務器(其確定) ,但是當我檢查對應於該進程的PROC文件夾中,我發現以下信息,是相當有趣的發現(粗體數據) lrwxrwxrwx 1的rmail的rmail 0 08月01日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. 

二進制存在和正在由其他進程連續使用,以及... 任何任何想法??

在此先感謝。

回答

1

這是一個正在運行的進程,其可執行文件在運行時已從存儲設備中刪除。

+0

二進制文件很好存在....並且正在被其他程序使用... – 2012-08-03 04:46:18

+0

不,* a *二進制文件存在,與用於運行此程序的二進制文件名稱相同。但是,原始可執行文件已被刪除 - 並替換爲具有相同名稱的新副本,該文件可能與文件內容明顯相同或不同。 – gby 2012-08-05 05:38:04

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 

那麼你可以分析它..也許嘗試它等字符串?它確定文件類型等

文件/ tmp/copy_of_that_in_memory_file

使用字符串

strings /tmp/copy_of_that_in_memory_file | less 

不能說我知道那是什麼...

使用strace可以幫你找一旦你知道了pid,它就會做什麼..使用-f跟隨開放的孩子..

strace -fp PID_NUMBER