diff --git a/backend/sftp/sftp.go b/backend/sftp/sftp.go index 71c874f0b..08641fd5e 100644 --- a/backend/sftp/sftp.go +++ b/backend/sftp/sftp.go @@ -28,6 +28,8 @@ type SFTP struct { cmd *exec.Cmd } +var sysProcAttr syscall.SysProcAttr + func startClient(program string, args ...string) (*SFTP, error) { // Connect to a remote host and request the sftp subsystem via the 'ssh' // command. This assumes that passwordless login is correctly configured. @@ -37,7 +39,7 @@ func startClient(program string, args ...string) (*SFTP, error) { cmd.Stderr = os.Stderr // ignore signals sent to the parent (e.g. SIGINT) - cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true} + cmd.SysProcAttr = &sysProcAttr // get stdin and stdout wr, err := cmd.StdinPipe() diff --git a/backend/sftp/sftp_unix.go b/backend/sftp/sftp_unix.go new file mode 100644 index 000000000..577649426 --- /dev/null +++ b/backend/sftp/sftp_unix.go @@ -0,0 +1,12 @@ +// +build !windows + +package sftp + +import ( + "syscall" +) + +func init() { + // ignore signals sent to the parent (e.g. SIGINT) + sysProcAttr = syscall.SysProcAttr{Setsid: true} +}