Avatar ·

Como obter informações sobre um processo pelo seu PID em Go

Olá a todos! Estou escrevendo uma pequena ferramenta de monitoramento em Go que deve rastrear processos em execução no Linux. Preciso obter informações básicas pelo PID (identificador do processo): nome do processo, status (em execução/dormindo/zumbi), uso de memória, tempo de atividade e caminho para o arquivo executável. Comecei de forma simples: leio `/proc/[PID]/status` e `/proc/[PID]/cmdline`. Mas isso parece improvisado — é necessário parsear arquivos de texto, e para obter o caminho completo para o binário, ainda preciso ler o symlink `/proc/[PID]/exe`. Além disso, não tenho certeza se esta é uma solução multiplataforma — no Windows e macOS não existe `/proc`. Por enquanto, meu código se parece com isso: ```go package main import ( "fmt" "io/ioutil" "os" "strconv" ) func getProcessName(pid int) (string, error) { data, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/comm", pid)) if err != nil { return "", err } return string(data), nil } func main() { name, _ := getProcessName(1) fmt.