diff --git a/cmd/sshpiperd/cmd_dummy.go b/cmd/sshpiperd/cmd_dummy.go new file mode 100644 index 00000000..07c0d675 --- /dev/null +++ b/cmd/sshpiperd/cmd_dummy.go @@ -0,0 +1,8 @@ +//go:build !linux + +package main + +import "os/exec" + +func setPdeathsig(cmd *exec.Cmd) { +} diff --git a/cmd/sshpiperd/cmd_linux.go b/cmd/sshpiperd/cmd_linux.go new file mode 100644 index 00000000..ba2e85d0 --- /dev/null +++ b/cmd/sshpiperd/cmd_linux.go @@ -0,0 +1,12 @@ +//go:build linux + +package main + +import ( + "os/exec" + "syscall" +) + +func setPdeathsig(cmd *exec.Cmd) { + cmd.SysProcAttr = &syscall.SysProcAttr{Pdeathsig: syscall.SIGTERM} +} diff --git a/cmd/sshpiperd/main.go b/cmd/sshpiperd/main.go index 1db53898..2a604d31 100644 --- a/cmd/sshpiperd/main.go +++ b/cmd/sshpiperd/main.go @@ -59,6 +59,7 @@ func createPlugin(args []string) (*plugin.GrpcPlugin, error) { default: cmd := exec.Command(exe) cmd.Args = args + setPdeathsig(cmd) log.Info("starting child process plugin: ", cmd.Args)