我已经使用/proc/self
很长一段时间来阅读与流程相关的信息,例如/proc/self/maps
等。
但是,在某些 UNIX 变体(例如 macOS)上,procfs
未实现文件系统;但就像这样关联状态,应该可以使用 获得类似的信息sysctl
。
阅读 的输出sysctl -a
,我发现信息并不直接与任何特定进程相关,而是与系统或内核相关。
那么,我如何在 macOS 等 UNIX 变体上sysctl
读取通常存在于 Linux 发行版中的信息?/proc/self
例如,我想进入/proc/self/maps
macOS。
答案1
您对 sysctl 主要包含系统范围参数的观察是恰当的。它也与名称有关sysctl
(暗示 SYStem ConTroL),并且手册页sysctl - get or set kernel state
对“ .”的描述
一些 BSD 系统确实提供了可选的procfs
文件系统支持,可以安装在 下/proc
,例如 FreeBSD:
# mount -t procfs procfs /proc
它提供了一些功能,但最常用于在模拟模式下运行 Linux 二进制文件时的兼容性目的,而不是用于对特定本机 BSD 进程的运行时统计信息进行明确查询。不幸的是,procfs
据我所知,OS X 不支持文件系统。
更一般地说,BSD 系统不使用/proc
,因此使用什么来替换基于特定的查询的答案/proc
会根据特定查询的不同而有所不同。鉴于您最近对帖子的编辑,您可能会发现此命令有助于显示特定进程的内存使用情况:
$ sudo vmmap $$