Я не думаю, что стандартная библиотека go позволяет вам это делать, однако сторонние пакеты, такие как mitchellh / go-ps , предоставляют дополнительную информацию.
Пример:
import ps "github.com/mitchellh/go-ps"
...
list, err := ps.Processes()
if err != nil {
panic(err)
}
for _, p := range list {
log.Printf("Process %s with PID %d and PPID %d", p.Executable(), p.Pid(), p.PPid())
}
Вывод:
2019/06/12 09:13:04 Process com.apple.photom with PID 68663 and PPID 1
2019/06/12 09:13:04 Process CompileDaemon with PID 49896 and PPID 49895
Вы также можете использовать ps.FindProcess(<pid>)
, чтобы найти конкретный процесс и проверить его PPid