package platform import ( "fmt" "os/exec" "time" ) const nvidiaRecoverHelper = "/usr/local/bin/bee-nvidia-recover" func runNvidiaRecover(args ...string) (string, error) { helperArgs := append([]string{nvidiaRecoverHelper}, args...) if _, err := exec.LookPath("systemd-run"); err == nil { unit := fmt.Sprintf("bee-nvidia-recover-%d", time.Now().UnixNano()) cmdArgs := []string{ "systemd-run", "--quiet", "--pipe", "--wait", "--collect", "--service-type=oneshot", "--unit", unit, } cmdArgs = append(cmdArgs, helperArgs...) raw, err := exec.Command("sudo", cmdArgs...).CombinedOutput() return string(raw), err } raw, err := exec.Command("sudo", helperArgs...).CombinedOutput() return string(raw), err }