Monitoring
當我打開並從 /proc 讀取時會發生什麼?
是否需要訪問硬碟驅動器或所有內容都在記憶體中完成?基本上我想不斷地從 meminfo 和 cpuinfo 獲取更新的值。
我是否需要重新打開文件然後重新讀取才能獲得更新的值,或者我可以重新讀取嗎?我目前無權訪問 Linux 安裝。
當您從 中讀取時
/proc
,核心會即時生成內容。不涉及硬碟驅動器。你所做的與許多監控程序所做的類似,所以我建議你看看他們在做什麼。例如,你可以看到 top 做了什麼:
strace top >/dev/null
跟踪顯示 top 打開
/proc/uptime
,/proc/loadavg
,/proc/stat
並且/proc/meminfo
一勞永逸。對於除 之外的所有這些文件/proc/uptime
,top 會返回(虛擬)文件的開頭並在每次刷新其顯示時再次讀取。裡面的大部分數據
/proc/cpuinfo
是不變的,但是有一些欄位,比如一些機器上的 CPU 速度是動態更新的。proc 文件系統記錄在核心文件中,在
Documentation/filesystems/proc.txt
. 如果您對一些深奧的細節感到絕望,您可以瀏覽原始碼。