in image/resources/knfsd-agent/status.go [176:210]
func readSystemdProperties(unit string, properties ...string) (map[string]string, error) {
result := make(map[string]string)
if len(properties) == 0 {
return result, nil
}
cmd := exec.Command("systemctl", "show",
"--property", strings.Join(properties, ","),
unit)
out, err := cmd.Output()
if err != nil {
return nil, fmt.Errorf("could not read systemd properties for %s: %w", unit, err)
}
s := bufio.NewScanner(bytes.NewReader(out))
for s.Scan() {
line := strings.TrimSpace(s.Text())
if line == "" {
continue
}
parts := strings.SplitN(line, "=", 2)
if len(parts) != 2 {
continue
}
k := strings.TrimSpace(parts[0])
v := strings.TrimSpace(parts[1])
result[k] = v
}
return result, s.Err()
}