25 lines
449 B
Go
25 lines
449 B
Go
package sys
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func KillProcessByCmdline(cmdline string) error {
|
|
cmdline = strings.TrimSpace(cmdline)
|
|
if cmdline == "" {
|
|
return fmt.Errorf("cmdline is blank")
|
|
}
|
|
|
|
pids := PidsByCmdline(cmdline)
|
|
for i := 0; i < len(pids); i++ {
|
|
out, err := CmdOutTrim("kill", "-9", strconv.Itoa(pids[i]))
|
|
if err != nil {
|
|
return fmt.Errorf("kill -9 %d fail: %v, output: %s", pids[i], err, out)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|