Avatar ·

Wie man Prozessinformationen anhand der PID in Go erhält

Hallo zusammen! Ich schreibe ein kleines Monitoring-Tool in Go, das laufende Prozesse in Linux überwachen soll. Ich muss anhand der PID (Prozess-ID) grundlegende Informationen abrufen: Prozessname, Status (running/sleeping/zombie), Speichernutzung, Laufzeit und Pfad zur ausführbaren Datei. Ich habe einfach angefangen: Ich lese `/proc/[PID]/status` und `/proc/[PID]/cmdline`. Aber das wirkt wie ein Workaround – ich muss Textdateien parsen, und um den vollständigen Pfad zur Binärdatei zu erhalten, muss ich auch den Symlink `/proc/[PID]/exe` lesen. Außerdem bin ich mir nicht sicher, ob das eine plattformübergreifende Lösung ist – unter Windows und macOS gibt es `/proc` nicht. Bisher sieht mein Code so aus: ```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. ```