util_exec.go 951 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package util
  2. import (
  3. "main/kinglong/common/log"
  4. "os/exec"
  5. )
  6. func GetSubProcessPid(pid string) (string, error) {
  7. pgrepCmd := exec.Command("pgrep", "-P", pid)
  8. output, err := pgrepCmd.CombinedOutput()
  9. if err != nil {
  10. return "", err
  11. }
  12. return string(output), nil
  13. }
  14. func Execute(name string, arg ...string) (*exec.Cmd, string, error) {
  15. cmd := exec.Command(name, arg...)
  16. combinedOutput, err := cmd.CombinedOutput()
  17. if err != nil {
  18. log.GlobalLogger.Info("命令", name, " ", arg, "执行出错:", err)
  19. return nil, "", err
  20. }
  21. return cmd, string(combinedOutput), nil
  22. }
  23. func ExecuteWithPath(path string, name string, arg ...string) (*exec.Cmd, error) {
  24. cmd := exec.Command(name, arg...)
  25. cmd.Dir = path
  26. err := cmd.Start()
  27. if err != nil {
  28. return nil, err
  29. } else {
  30. return cmd, nil
  31. }
  32. }
  33. func KillProcessByPID(pid string) error {
  34. cmd := exec.Command("kill", "-9", pid)
  35. err := cmd.Run()
  36. if err != nil {
  37. return err
  38. }
  39. return nil
  40. }