小编sbs*_*_il的帖子

在 macOS 上查找进程的绝对路径名

我是 GO 和 mac 的新手,我正在尝试使用 sysctl 来查找正在运行的进程的完整路径名。

kprocs, err := unix.SysctlKinfoProcSlice("kern.proc.all")
    if err != nil {
        fmt.Println("error: ", err)
    }

    for _, proc := range kprocs {
        name := string(proc.Proc.P_comm[:])
        pid := proc.Proc.P_pid
        extName, err := unix.SysctlKinfoProc("kern.proc.pathname", int(pid))
        if err != nil {
            fmt.Println("error: ", err)
        }
Run Code Online (Sandbox Code Playgroud)

并收到错误:没有这样的文件或目录

我正确使用这个功能吗?

编辑 如果我像这样运行进程: ./processName ,那么我没有得到它的完整路径,例如 /Users/username/go/src/processName - 这就是我需要的。所有的解决方案ps都会给出相对路径,而我需要一些给出过程的绝对路径的东西。

macos go

6
推荐指数
1
解决办法
324
查看次数

标签 统计

go ×1

macos ×1