util_exec.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package util
  2. import (
  3. "cicv-data-closedloop/pji/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 ExecuteWithPath(path string, name string, arg ...string) (*exec.Cmd, error) {
  15. // 创建一个Cmd对象,表示要执行的命令
  16. cmd := exec.Command(name, arg...)
  17. // 指定目录
  18. cmd.Dir = path
  19. err := cmd.Start()
  20. if err != nil {
  21. return nil, err
  22. } else {
  23. // 执行命令并等待它完成d
  24. return cmd, nil
  25. }
  26. }
  27. func Execute(name string, arg ...string) (*exec.Cmd, string, error) {
  28. cmd := exec.Command(name, arg...)
  29. combinedOutput, err := cmd.CombinedOutput()
  30. if err != nil {
  31. log.GlobalLogger.Info("命令", name, " ", arg, "执行出错:", err)
  32. return nil, "", err
  33. }
  34. return cmd, string(combinedOutput), nil
  35. }
  36. func KillProcessByPID(pid string) error {
  37. cmd := exec.Command("kill", "-9", pid)
  38. err := cmd.Run()
  39. if err != nil {
  40. return err
  41. }
  42. return nil
  43. }