//go:build linux package game import ( "os" "strconv" "strings" ) // processes lists the running processes from /proc//comm. func processes() ([]Process, error) { entries, err := os.ReadDir("/proc") if err != nil { return nil, err } var ps []Process for _, e := range entries { pid, err := strconv.Atoi(e.Name()) if err != nil { continue } comm, err := os.ReadFile("/proc/" + e.Name() + "/comm") if err != nil { continue // process vanished mid-walk } ps = append(ps, Process{PID: pid, Name: strings.TrimSpace(string(comm))}) } return ps, nil }