diff options
| author | Paul Buetow <paul@buetow.org> | 2026-06-22 09:21:06 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-06-22 09:21:06 +0300 |
| commit | 1888b70cf4981cabaef0b6e33e0ae9982d3a788e (patch) | |
| tree | 5cec4e67a05547b61ed03ffe7709902a80da3c35 /internal/task/command_unix.go | |
| parent | 02f5f1419c4cb5fccc47a0ce4dbf3957e73b0e79 (diff) | |
fix task export timeout for lq0
Diffstat (limited to 'internal/task/command_unix.go')
| -rw-r--r-- | internal/task/command_unix.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/task/command_unix.go b/internal/task/command_unix.go new file mode 100644 index 0000000..25e7fa3 --- /dev/null +++ b/internal/task/command_unix.go @@ -0,0 +1,26 @@ +//go:build unix + +package task + +import ( + "errors" + "os" + "os/exec" + "syscall" +) + +func configureCommandContext(cmd *exec.Cmd) { + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + cmd.Cancel = func() error { + if cmd.Process == nil { + return os.ErrProcessDone + } + if err := syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL); err != nil { + if errors.Is(err, syscall.ESRCH) { + return os.ErrProcessDone + } + return err + } + return nil + } +} |
