支持多平台linux-amd64 linux-arm64 win

This commit is contained in:
BBIT-Kai
2026-01-04 11:44:10 +08:00
parent 7b669ffbd0
commit 209d087fa5
24 changed files with 227 additions and 49 deletions
+38 -20
View File
@@ -4,13 +4,11 @@ import (
"encoding/json"
"os"
"os/exec"
"runtime"
"sentinel/pkg/config"
"sentinel/pkg/log"
model2 "sentinel/pkg/model"
"sentinel/pkg/utils"
"strconv"
"syscall"
"time"
)
@@ -154,38 +152,58 @@ func (b *BusinessService) handleRestart() {
_ = cmd.Start()
os.Exit(0)
}
// handleCheckUpdate 触发更新流程(主程序侧)
func (b *BusinessService) handleCheckUpdate() {
args := []string{
"--version", strconv.Itoa(config.APP_VERSION),
}
cmd := exec.Command("./updater.exe", args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
launcher := newUpdaterLauncher()
// OS 级脱离父进程
switch runtime.GOOS {
case "windows":
cmd.SysProcAttr = &syscall.SysProcAttr{
CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP,
}
}
if err := cmd.Start(); err != nil {
if err := launcher.Start(args); err != nil {
log.Println("[BUS] failed to start updater:", err)
return
}
log.Println(
"[BUS] updater started (pid=%d), exiting main program\n",
cmd.Process.Pid,
"[BUS] updater started, exiting main program",
)
// 给 updater 留出启动窗口(尤其是 systemd / docker 环境)
time.Sleep(500 * time.Millisecond)
os.Exit(0)
}
// handleCheckUpdate 触发更新流程(主程序侧)
//func (b *BusinessService) handleCheckUpdate() {
//
// args := []string{
// "--version", strconv.Itoa(config.APP_VERSION),
// }
//
// cmd := exec.Command("./updater.exe", args...)
// cmd.Stdout = os.Stdout
// cmd.Stderr = os.Stderr
//
// // OS 级脱离父进程
// switch runtime.GOOS {
// case "windows":
// cmd.SysProcAttr = &syscall.SysProcAttr{
// CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP,
// }
// }
//
// if err := cmd.Start(); err != nil {
// log.Println("[BUS] failed to start updater:", err)
// return
// }
//
// log.Println(
// "[BUS] updater started (pid=%d), exiting main program\n",
// cmd.Process.Pid,
// )
//
// // 给 updater 留出启动窗口(尤其是 systemd / docker 环境)
// time.Sleep(500 * time.Millisecond)
//
// os.Exit(0)
//}