/proc 介紹
/proc是一種偽文件系統(也即虛擬文件系統),存儲的是當前內核運行狀態的一系列特殊文件,用戶可以通過這些文件查看有關系統硬件及當前正在運行進程的信息,甚至可以通過更改其中某些文件來改變內核的運行狀態。
簡單來講,/proc目錄即保存在系統內存中的信息。
/proc目錄中包含許多以數字命名的子目錄,這些數字表示系統當前正在運行進程的進程號(PID),里面包含對應進程相關的多個信息文件。
/proc/self 介紹
/proc/self表示當前進程目錄。前面說了通過/proc/$pid/來獲取指定進程的信息。如果某個進程想要獲取當前進程的系統信息,就可以通過進程的pid來訪問/proc/$pid/目錄。但是這個方法還需要獲取進程pid.為了更方便的獲取本進程的信息,linux提供了/proc/self/目錄,這個目錄比較獨特,不同的進程訪問該目錄時獲得的信息是不同的,內容等價于/proc/本進程pid/。進程可以通過訪問/proc/self/目錄來獲取自己的系統信息,而不用每次都獲取pid。
如何利用
cmdline
獲取當前啟動進程的完整命令
cat /proc/self/cmdline
以上命令返回的結果,就是啟動當前進程的命令
cwd
cwd 文件是一個指向當前進程運行目錄的符號鏈接??梢酝ㄟ^查看cwd文件獲取目標指定進程環境的運行目錄
ls /proc/self/cwd
exe
獲取當前進程的可執行文件的完整路徑
ls -al /proc/self/exe
environ
獲取當前進程的環境變量信息
cat /proc/self/environ
maps
/proc/self/maps的內容是當前進程的內存映射關系,可通過讀取該文件來得到內存數據映射的地址。
字段值依次為:內存區域--權限--文件在內存中的偏移量--設備號--文件索引節點--路徑
路徑中/usr/bin/cat表示二進制文件
mem
/proc/self/mem的內容是當前進程的內存映射關系,可通過讀取該文件來得到內存數據映射的地址。但是注意該文件不能直接讀取,因為文件中存在著一些無法讀取的未被映射區域。所以要結合/proc/self/maps中的偏移地址進行讀取。通過參數start和end及偏移地址值讀取內容。
鏈接:https://www.cnblogs.com/MrSoap/p/18228926
-
內核
+關注
關注
3文章
1330瀏覽量
40026 -
Linux
+關注
關注
87文章
11090瀏覽量
207596 -
文件系統
+關注
關注
0文章
278瀏覽量
19804 -
Proc
+關注
關注
0文章
12瀏覽量
8979
原文標題:Linux中/proc 介紹指南
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論