fix: nohup启动

This commit is contained in:
TsMask
2025-05-29 18:03:20 +08:00
parent b49a714a1b
commit 2304d2069e

View File

@@ -3,8 +3,10 @@ package service
import (
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"syscall"
"time"
"be.ems/src/framework/cmd"
@@ -267,10 +269,18 @@ func (r NeVersion) operateCommand(action, neType string, neFilePaths []string) (
}
// 删除软件包
omcStrArr = append(omcStrArr, fmt.Sprintf("sudo rm %s", strings.Join(neFilePaths, " ")))
file.WriterFileTXT(fmt.Sprintf("#!/bin/bash \n%s", strings.Join(omcStrArr, " && ")), "/tmp/operate_omc.sh")
// file.WriterFileTXT(fmt.Sprintf("#!/bin/bash \n%s", strings.Join(omcStrArr, " && ")), "/tmp/operate_omc.sh")
// 使用 nohup 启动进程
cmd := exec.Command("nohup", "sh", "-c", fmt.Sprintf("sleep 2s && %s", strings.Join(omcStrArr, " && ")), "&")
cmd.SysProcAttr = &syscall.SysProcAttr{
Setpgid: true, // 使进程脱离父进程的进程组
}
cmd.Start() // 启动子进程
// 2s后执行omc相关命令
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo rm -f /tmp/operate_run_%s_omc.out \n", action))
cmdStrArr = append(cmdStrArr, fmt.Sprintf("bash /tmp/operate_omc.sh > /tmp/operate_run_%s_omc.out 2>&1 & \n", action))
// cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo rm -f /tmp/operate_run_%s_omc.out \n", action))
// cmdStrArr = append(cmdStrArr, fmt.Sprintf("bash /tmp/operate_omc.sh > /tmp/operate_run_%s_omc.out 2>&1 & \n", action))
cmdStrArr = append(cmdStrArr, fmt.Sprintf("echo '%s' \n", okFlagStr))
return okFlagStr, cmdStrArr, nil
} else if neType == "IMS" {