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

新手上路,请多包涵

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

我应该怎么办?

原文由 geek 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

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

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

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

可以使用 -o 选项标志显示有关此进程 ID 的更多信息。有关列表,请参阅 此文档页面

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

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

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

原文由 user56reinstatemonica8 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题