我正在开发一个插件,它可以计算在 Linux 系统上运行的进程。我四处搜索,似乎我需要访问 /proc 并从那里收集信息。我还尝试使用 os、os/exec 和 syscall 包来运行外部命令,ps -A --no-headers | wc -l但这也不起作用。我也在用 golang 编写代码。欢迎任何帮助或建议。
慕慕森
浏览 170回答 2
2回答
www说
您可以在ps此处找到 Linux用于遍历进程列表的代码:https://gitlab.com/procps-ng/procps/blob/master/proc/readproc.c#L1167简而言之,算法是:opendir 在 /proc调用readdir直到返回第一个字符是数字的条目。因此,要计算进程数,您可以通读整个目录并计算匹配的条目数。您可以在 Go 中使用os.Opento open执行此操作/proc,然后调用该Readdirnames方法列出进程。