Cómo obtener información de un proceso por su PID en Go
¡Hola a todos! Estoy escribiendo una pequeña herramienta de monitoreo en Go que debe rastrear procesos en ejecución en Linux. Necesito obtener información básica por PID (identificador de proceso): nombre del proceso, estado (en ejecución/dormido/zombie), uso de memoria, tiempo de ejecución y ruta al ejecutable.
Empecé simple: leo `/proc/[PID]/status` y `/proc/[PID]/cmdline`. Pero esto parece un parche — tengo que parsear archivos de texto, y para obtener la ruta completa al binario necesito leer el symlink `/proc/[PID]/exe`. Además, no estoy seguro de que sea una solución multiplataforma — en Windows y macOS no hay `/proc`.
Por ahora mi código se ve así:
```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.
Inicia sesión para dejar una respuesta
Blogs