internal/ps/ps.go (16 lines of code) (raw):
package ps
import (
"os/exec"
"strconv"
"strings"
)
// Exec invokes ps -o keywords -p pid and returns its output
func Exec(pid int, keywords string) (string, error) {
out, err := exec.Command("ps", "-o", keywords, "-p", strconv.Itoa(pid)).Output()
if err != nil {
return "", err
}
return strings.TrimSpace(string(out)), nil
}
// Comm invokes ps -o comm= -p pid and returns its output
func Comm(pid int) (string, error) {
return Exec(pid, "comm=")
}