一尘不染

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

go

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

我该怎么办?


阅读 231

收藏
2021-12-02

共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 作为最后一个选项 - 它通常是最长的,否则可能会被缩短。

2021-12-02