4

我想要 top 的源代码,但我在任何地方都找不到,我想要更多关于 /proc 目录到底包含什么的信息。我已经看到它有一系列标记为 1、2、3 4、.. ..在这些文件夹中似乎有一组一致的文件。我想知道这些是否是目前在机器上运行的进程的目录。

我还想知道 TOP 到底是如何链接到这个文件夹的,因为我被告知进程是由 TOP 通过从这些目录中获取数据来监控的。我想知道哪个文件是 TOP 从目录中获取特定进程的 CPU 使用率。如果它太复杂了,如果你能指出我可以真正理解它的代码部分,那就太好了!

感谢您的帮助

4

3 回答 3

9
于 2010-07-30T11:54:49.500 回答
1

top 是procps的一部分,是的,这些数字是进程 ID。

于 2010-07-30T11:55:54.570 回答
1

procfs 基本上是系统和进程信息的文件抽象。

编号的文件夹当前正在运行具有与文件夹名称相关的 PID 的进程。


您可以跟踪 top 或任何其他进程读取的文件

strace -e open top

或覆盆子

strace -e openat top

或更通用的 grep

strace top | grep open

例如,你得到输出

...
openat(AT_FDCWD, "/proc/7353/stat", O_RDONLY|O_LARGEFILE) = 8
openat(AT_FDCWD, "/proc/7353/statm", O_RDONLY|O_LARGEFILE) = 8
...

在这里你可以看到,那个顶部打开了文件

/proc/[pid]/stat

其中包含有关该过程的某些信息

于 2020-07-23T09:40:23.223 回答