本文发布于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 国际」 许可协议进行许可。