top 是否讀取一些系統檔案?

top 是否讀取一些系統檔案?

如果我是正確的, 的輸出free來自 閱讀/proc/meminfo

在 的輸出中top

  • 記憶體部分的摘要不是特定於某個進程也來自嗎/proc/meminfo

  • 每個進程的記憶體資訊來自哪些系統檔案?

謝謝。

答案1

您可以使用它strace來找出程式正在使用哪些檔案。例如:

strace -f -o top.log -e trace=file top

然後只需按q退出即可toptop.log已建立一個文件,顯示top運行時存取了哪些文件。

本質上,它似乎是/proc/<pid>/{stat,statm}針對所有正在運行的進程的 PID,以及以下檔案(/proc/以及所有已刪除的程式庫):

主機 ~ # cat top.log | sed 's/.*"\([^"]*\)".*/\1/' | grep -vE '(/proc/|/lib/)' | 排序 | uniq
9375 +++ 以 0 +++ 退出
/dev/空
/etc/ld.so.cache
/etc/ld.so.nohwcap
/etc/ld.so.preload
/etc/當地時間
/etc/nsswitch.conf
/etc/密碼
/etc/terminfo
/etc/terminfo/s/screen
/etc/toprc
/lib
/行程
/sys/devices/系統/cpu/在線
頂部
/usr/lib
/usr/share/locale/de_DE/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de_DE.utf8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de_DE.UTF-8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de.utf8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de.UTF-8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/locale.alias
/usr/share/terminfo
/var/運行/utmp
/var/運行/utmpx

相關內容