Top이 일부 시스템 파일을 읽나요?

Top이 일부 시스템 파일을 읽나요?

내가 맞다면 의 출력은 을 free읽는 것에서 나옵니다 /proc/meminfo.

top의 출력에서

  • 특정 프로세스에 특정한 메모리 섹션의 요약도 에서 나온 것이 아닌가요 /proc/meminfo?

  • 각 프로세스의 메모리 정보는 어떤 시스템 파일에서 나오나요?

감사해요.

답변1

strace이를 사용하여 프로그램이 어떤 파일을 사용하고 있는지 알아낼 수 있습니다. 예를 들어:

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

그런 다음 그냥 q종료를 누르세요 top. 런타임 중에 어떤 파일에 액세스했는지 top.log보여주는 파일이 생성되었습니다 .top

/proc/<pid>/{stat,statm}기본적으로 이는 실행 중인 모든 프로세스와 다음 파일( /proc/및 제거된 라이브러리) 의 PID를 대상으로 하는 것으로 보입니다 .

호스트~ # cat top.log | sed 's/.*"\([^"]*\)".*/\1/' | grep -vE '(/proc/|/lib/)' | sort| 유니크
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/화면
/etc/toprc
/lib
/프로세스
/sys/devices/system/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/run/utmpx

관련 정보