package common import ( "os/exec" "runtime" "strings" ) func runInWindows(cmd string) (string, error) { result, err := exec.Command("cmd", "/c", cmd).Output() if err != nil { return "", err } return strings.TrimSpace(string(result)), err } func RunCommand(cmd string) (string, error) { if runtime.GOOS == "windows" { return runInWindows(cmd) } else { return runInLinux(cmd) } } func runInLinux(cmd string) (string, error) { result, err := exec.Command("/bin/sh", "-c", cmd).Output() if err != nil { return "", err } return strings.TrimSpace(string(result)), err } //根据进程名判断进程是否运行 func CheckProRunning(serverName string) (bool, error) { a := `ps ux | awk '/` + serverName + `/ && !/awk/ {print $2}'` pid, err := RunCommand(a) if err != nil { return false, err } return pid != "", nil } //根据进程名称获取进程ID func GetPid(serverName string) (string, error) { a := `ps ux | awk '/` + serverName + `/ && !/awk/ {print $2}'` pid, err := RunCommand(a) return pid, err }