diff --git a/src/terminal_unix.go b/src/terminal_unix.go index 4cee73b..1ce7854 100644 --- a/src/terminal_unix.go +++ b/src/terminal_unix.go @@ -7,6 +7,8 @@ import ( "os/signal" "strings" "syscall" + + "golang.org/x/sys/unix" ) func notifyOnResize(resizeChan chan<- os.Signal) { @@ -14,7 +16,12 @@ func notifyOnResize(resizeChan chan<- os.Signal) { } func notifyStop(p *os.Process) { - p.Signal(syscall.SIGSTOP) + pid := p.Pid + pgid, err := unix.Getpgid(pid) + if err == nil { + pid = pgid * -1 + } + unix.Kill(pid, syscall.SIGSTOP) } func notifyOnCont(resizeChan chan<- os.Signal) {