Files
MyGoNavi/internal/app/update_process_unix.go
Syngnat d31bb978f2 🐛 fix(update/macos): 加固在线更新自动安装脚本与进程隔离
- 安装脚本 Setsid 脱离主进程,避免 Quit 后脚本被连带结束
- 等待宿主退出增加 120s 超时,防止无限挂起
- 支持 dmg/zip 解包定位 .app,稳健解析 Contents/MacOS 可执行文件
- 不再 rm -rf 脚本所在 STAGED 目录,降低安装中途自删风险
- 替换失败明确走管理员权限回退,增强 relaunch(open -n -a / nohup)
- 补充 macOS 更新脚本单测
2026-07-09 13:35:41 +08:00

22 lines
383 B
Go

//go:build !windows
package app
import (
"os/exec"
"syscall"
)
// configureDetachedUpdateCommand 让安装脚本脱离主进程会话,避免 Quit/Exit 后脚本被连带结束。
func configureDetachedUpdateCommand(cmd *exec.Cmd) {
if cmd == nil {
return
}
cmd.SysProcAttr = &syscall.SysProcAttr{
Setsid: true,
}
cmd.Stdin = nil
cmd.Stdout = nil
cmd.Stderr = nil
}