blob: a018ffccf6d310dbb75a88ca468f63891922f72b [file] [log] [blame]
package exec
import (
"context"
"syscall"
)
// NoInterruptContext returns a context.Context instance which launches
// subprocesses in a difference process group so that they are not killed when
// this process is killed.
//
// This function is a no-op on Windows.
func NoInterruptContext(ctx context.Context) context.Context {
parent := getCtx(ctx)
runFn := func(c *Command) error {
c.SysProcAttr = &syscall.SysProcAttr{
Setpgid: true,
}
return parent.runFn(c)
}
return NewContext(ctx, runFn)
}