//go:build linux || darwin

package daemon

import "syscall"

// References:
// 1. linux: https://go.dev/src/syscall/exec_linux.go
// 2. macos (arm): https://go.dev/src/syscall/exec_libc2.go
func sysProcAttr() *syscall.SysProcAttr {
	return &syscall.SysProcAttr{
		// Create a new session for the child process. This ensures that the daemon
		// is not terminated when the parent session is closed. This can happen
		// for example when a ssh session is terminated.
		Setsid: true,
	}
}