避免 Ctrl-C 禁用输入打印

避免 Ctrl-C 禁用输入打印

在我们的一台服务器上,每当我用Ctrl-C(例如终止tail -f进程)杀死一个进程时,我对 bash 的输入就不再被打印。我可以盲打reset,解决了这个问题,但是很不方便。

我希望用 杀死一个进程Ctrl-C不会导致这个问题。你有什么提示吗?

编辑:根据要求提供更多信息

服务器运行Suse enterprise,内核为2.6.32。我们安装的bash版本是

GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)

关于尾巴,是

tail (GNU coreutils) 6.12

我当前的终端模拟器是 konsole,但许多其他模拟器也发生了同样的情况,包括 GNOME 终端和 terminator。

答案1

通常,只有当您终止已更改 TTY 设置以关闭回显的程序时,才会发生这种情况。例如 mplayer / mpv,或文本编辑器。即便如此,大多数表现良好的程序都会修改 TTY 捕获信号,并将它们恢复到从 SIGINT 退出之前找到它们的方式。

你从 中看到这种行为真是太奇怪了tail。如果在 tail 运行时键入会发生什么?您应该看到 echo,它具有与cat > /dev/null.

也许您后台运行的其他东西正在干扰您的 TTY?运行tty以找出您所在的 tty,然后您可以stty -a < /dev/that_tty从另一个 shell 来检查状态。 (寻找echo,而不是-echo)。

相关内容