Skip to content

Commit 8465e39

Browse files
committed
fix: handles SIGINT to terminate process on KeyboardInterrupt
1 parent a3df5e2 commit 8465e39

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ func main() {
124124

125125
ex := executor.NewExecutor(executor.ExecutorArgs{
126126
Logger: logger,
127-
Command: func(context.Context) *exec.Cmd {
128-
cmd := exec.Command(execCmd, execArgs...)
127+
Command: func(ctx context.Context) *exec.Cmd {
128+
cmd := exec.CommandContext(ctx, execCmd, execArgs...)
129129
cmd.Stdout = os.Stdout
130130
cmd.Stderr = os.Stderr
131131
cmd.Stdin = os.Stdin

pkg/executor/exec.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type ExecutorArgs struct {
2727

2828
func NewExecutor(args ExecutorArgs) *Executor {
2929
done := make(chan os.Signal, 1)
30-
signal.Notify(done, syscall.SIGTERM)
30+
signal.Notify(done, syscall.SIGINT, syscall.SIGTERM)
3131

3232
if args.Logger == nil {
3333
args.Logger = slog.Default()
@@ -51,8 +51,6 @@ func (ex *Executor) Exec() error {
5151
ex.mu.Unlock()
5252
}()
5353

54-
ex.logger.Debug("[exec] starting process")
55-
5654
ctx, cf := context.WithCancel(context.TODO())
5755
defer cf()
5856

@@ -82,6 +80,7 @@ func (ex *Executor) Exec() error {
8280
}
8381
}()
8482

83+
ex.logger.Debug("[exec:post] process running")
8584
if err := cmd.Wait(); err != nil {
8685
if strings.HasPrefix(err.Error(), "signal:") {
8786
ex.logger.Debug("wait terminated, received", "signal", err.Error())

0 commit comments

Comments
 (0)