Merge PR #78: Add Windows build support for daemon command

This commit is contained in:
Steve Yegge
2025-10-18 00:44:23 -07:00
3 changed files with 30 additions and 1 deletions

View File

@@ -321,7 +321,7 @@ func startDaemon(interval time.Duration, autoCommit, autoPush bool, logFile, pid
cmd := exec.Command(exe, args...)
cmd.Env = append(os.Environ(), "BD_DAEMON_FOREGROUND=1")
cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true}
configureDaemonProcess(cmd)
devNull, err := os.OpenFile(os.DevNull, os.O_RDWR, 0)
if err != nil {

13
cmd/bd/daemon_unix.go Normal file
View File

@@ -0,0 +1,13 @@
//go:build unix || linux || darwin
package main
import (
"os/exec"
"syscall"
)
// configureDaemonProcess sets up platform-specific process attributes for daemon
func configureDaemonProcess(cmd *exec.Cmd) {
cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true}
}

16
cmd/bd/daemon_windows.go Normal file
View File

@@ -0,0 +1,16 @@
//go:build windows
package main
import (
"os/exec"
"syscall"
)
// configureDaemonProcess sets up platform-specific process attributes for daemon
func configureDaemonProcess(cmd *exec.Cmd) {
// Windows doesn't support Setsid, use CREATE_NEW_PROCESS_GROUP instead
cmd.SysProcAttr = &syscall.SysProcAttr{
CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP,
}
}