diff --git a/components/engine/term/termios_darwin.go b/components/engine/term/termios_darwin.go index 0f6b24b184..24e79de4b2 100644 --- a/components/engine/term/termios_darwin.go +++ b/components/engine/term/termios_darwin.go @@ -44,7 +44,7 @@ func MakeRaw(fd uintptr) (*State, error) { newState.Iflag &^= (ISTRIP | INLCR | IGNCR | IXON | IXOFF) newState.Iflag |= ICRNL newState.Oflag |= ONLCR - newState.Lflag &^= (ECHO | ICANON) + newState.Lflag &^= (ECHO | ICANON | ISIG) if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(setTermios), uintptr(unsafe.Pointer(&newState))); err != 0 { return nil, err diff --git a/components/engine/term/termios_linux.go b/components/engine/term/termios_linux.go index 22f4fff430..6a76460a54 100644 --- a/components/engine/term/termios_linux.go +++ b/components/engine/term/termios_linux.go @@ -33,7 +33,7 @@ func MakeRaw(fd uintptr) (*State, error) { newState.Iflag &^= (syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON) newState.Oflag &^= syscall.OPOST - newState.Lflag &^= (syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.IEXTEN) + newState.Lflag &^= (syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.EXTEN) newState.Cflag &^= (syscall.CSIZE | syscall.PARENB) newState.Cflag |= syscall.CS8