孟令鑫 1 ano atrás
pai
commit
a078e0710d
2 arquivos alterados com 18 adições e 14 exclusões
  1. 11 12
      common/util/u_exec.go
  2. 7 2
      pji/common/svc/rosbag_record.go

+ 11 - 12
common/util/u_exec.go

@@ -44,19 +44,8 @@ func ExecuteWithDirAsync(dir string, name string, arg ...string) (*exec.Cmd, err
 	err := cmd.Start()
 	if err != nil {
 		return nil, err
-	} else {
-		return cmd, nil
-	}
-}
-
-func ExecuteWithDirSync(dir string, name string, arg ...string) (*exec.Cmd, string, error) {
-	cmd := exec.Command(name, arg...)
-	cmd.Dir = dir
-	combinedOutput, err := cmd.CombinedOutput()
-	if err != nil {
-		return nil, "", err
 	}
-	return cmd, string(combinedOutput), nil
+	return cmd, nil
 }
 
 func ExecuteWithEnvAndDirAsync(envs []string, dir string, name string, arg ...string) (*exec.Cmd, error) {
@@ -102,6 +91,16 @@ func ExecuteSync(name string, arg ...string) (*exec.Cmd, string, error) {
 	return cmd, string(combinedOutput), nil
 }
 
+func ExecuteWithDirSync(dir string, name string, arg ...string) (*exec.Cmd, string, error) {
+	cmd := exec.Command(name, arg...)
+	cmd.Dir = dir
+	combinedOutput, err := cmd.CombinedOutput()
+	if err != nil {
+		return nil, "", err
+	}
+	return cmd, string(combinedOutput), nil
+}
+
 func ExecuteWithEnvSync(envs []string, name string, arg ...string) (*exec.Cmd, string, error) {
 	cmd := exec.Command(name, arg...)
 	for _, env := range envs {

+ 7 - 2
pji/common/svc/rosbag_record.go

@@ -37,9 +37,14 @@ func BagRecord(nodeName string) {
 		// 不在此处压缩,因为 rosbag filter 时会报错。在上传到oss之前压缩即可。
 		// 包名格式:2023-11-15-17-35-20_0.bag
 		cutil.CreateParentDir(cfg.CloudConfig.BagDataDir)
-		cmd, err := util.ExecuteWithDirAsync(cfg.CloudConfig.BagDataDir, "/opt/ros/melodic/bin/rosbag", command...)
+		//cmd, err := util.ExecuteWithDirAsync(cfg.CloudConfig.BagDataDir, "/opt/ros/melodic/bin/rosbag", command...)
+		//if err != nil {
+		//	c_log.GlobalLogger.Error("执行record命令", command, "出错:", err)
+		//	continue
+		//}
+		cmd, output, err := util.ExecuteWithDirSync(cfg.CloudConfig.BagDataDir, "/opt/ros/melodic/bin/rosbag", command...)
 		if err != nil {
-			c_log.GlobalLogger.Error("执行record命令", command, "出错:", err)
+			c_log.GlobalLogger.Error("执行record命令", command, "出错:【output】=", output, "【err】=", err)
 			continue
 		}
 		c_log.GlobalLogger.Info("启动record命令成功。")