telegraf/internal/process/process_posix.go

24 lines
354 B
Go

// +build !windows
package process
import (
"context"
"os/exec"
"syscall"
"time"
)
func gracefulStop(ctx context.Context, cmd *exec.Cmd, timeout time.Duration) {
select {
case <-time.After(timeout):
cmd.Process.Signal(syscall.SIGTERM)
case <-ctx.Done():
}
select {
case <-time.After(timeout):
cmd.Process.Kill()
case <-ctx.Done():
}
}