本文发布于Cylon的收藏册,转载请著名原文链接~


一个很好的问题:How golang to get process name by process id (pid)?

目前看来go api并没有提供通过pid获取进程名称的方法,可以通过 /proc/<pid>/cmdline来获取对应的进程名称,也可以通过 readlink /proc/6530/exe 来获取

  • /proc/<pid>/cmdline 获取的为运行进程的名称,通常包含一些特殊字符。例如 "-bash\x00"sshd: root@pts/0
  • readlink /proc/6530/exe 获取的为对应进程运行的程序的路径
pid := os.Getppid()
contents, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cmdline",pid))
pid := os.Getppid()
contents, err := os.Readlink(fmt.Sprintf("/proc/%d/cmdline",pid))

Reference process name from pid

本文发布于Cylon的收藏册,转载请著名原文链接~

链接:https://www.oomkill.com/2019/10/goskill-process-id/

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。