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.
No answers yet.
Faça login para deixar uma resposta