2026-04-02 21:29:30 +07:00
|
|
|
//go:build !windows
|
|
|
|
|
|
|
|
|
|
package updater
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"os"
|
|
|
|
|
"os/exec"
|
|
|
|
|
"syscall"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// SpawnDetached starts a new process that is not attached to the current one.
|
|
|
|
|
func SpawnDetached(exePath string, args []string) error {
|
2026-04-03 08:45:45 +02:00
|
|
|
cmd := exec.Command(exePath, args...) //nolint:gosec // G204: exePath is the server's own binary path, validated by the caller
|
2026-04-02 21:29:30 +07:00
|
|
|
cmd.Stdout = os.Stdout
|
|
|
|
|
cmd.Stderr = os.Stderr
|
|
|
|
|
cmd.SysProcAttr = &syscall.SysProcAttr{
|
|
|
|
|
Setsid: true,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return cmd.Start()
|
|
|
|
|
}
|