go - 如何从其 PID 获取进程详细信息

标签 go

我维护了当前在我的系统 (Linux) 上运行的进程的 PID 列表。由此看来,如果我能从这个 PID 中获取进程详细信息,那就太好了。我已经通过 Go 中的 syscall.Getrusage() ,但我没有得到想要的结果。

我该怎么办?

最佳答案

这可能不是提问者想要的(关于每个进程 id 需要什么类型的详细信息没有太多明确的信息),但是您可以使用 BASH 命令通过其 pid 获取任务的一些详细信息 ps -p $PID(ps进程状态的缩写)

默认选项为 ps -p $PID 这将返回:

  • PID:回显进程 ID
  • TTY:控制终端的名称(如果有)
  • TIME:自执行以来进程使用了​​多少 CPU 时间(例如 00:00:02)
  • CMD:调用进程的命令(例如java)

可以使用 -o 选项标志显示有关此进程 ID 的更多信息。列表见this documentation page .

这是一个示例,它告诉您特定进程 PID 的完整命令以及参数、用户、组和内存使用情况(请注意多个 -o 标志如何分别采用一对,以及命令如何输出大量空白填充):

ps -p $PID -o pid,vsz=MEMORY -o user,group=GROUP -o comm,args=ARGS

提示:对于控制台中的人工读取输出,请将 args 设置为最后一个选项 - 它通常是最长的,否则可能会被缩短。

关于go - 如何从其 PID 获取进程详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9378021/

相关文章:

mongodb - 如何在golang中连接mongodb 3.0

go - 在 Web 服务器应用程序 golang 中使用键值存储

sql - 通过外键联合查询

docker - Golang,Docker,外部包,找不到路径

go - 如何检查一个变量中的单词具有相同字符的单词

go - protoc 在 go 源文件上生成导入路径

postgresql - 如何在 PostgreSQL 中匹配模式时转义字符串

go - 每小时准确返回一个值的函数

amazon-web-services - 使用 Go 设置 AWS Lambda,为什么我总是用这个简单的函数得到 "Internal server error"?

file-io - golang中的快速文件读取