From a1d791083b4fb24730f0891659cdaa18b863f026 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 8 May 2023 16:27:07 +0530 Subject: [PATCH] ssh_kitten: Proper exit code for termination by SIGINT --- kittens/ssh/main.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kittens/ssh/main.go b/kittens/ssh/main.go index 80802b475..ddcdb689f 100644 --- a/kittens/ssh/main.go +++ b/kittens/ssh/main.go @@ -696,9 +696,15 @@ func run_ssh(ssh_args, server_args, found_extra_args []string) (rc int, err erro }() err = c.Wait() drain_potential_tty_garbage(term) + signal.Reset(unix.SIGINT, unix.SIGTERM) if err != nil { var exit_err *exec.ExitError if errors.As(err, &exit_err) { + if state := exit_err.ProcessState.String(); state == "signal: interrupt" { + unix.Kill(os.Getpid(), unix.SIGINT) + // Give the signal time to be delivered + time.Sleep(20 * time.Millisecond) + } return exit_err.ExitCode(), nil } return 1, err