^C 不再在我尝试过的任何应用程序中发出信号。我正在使用 ArchLinux。这非常糟糕,我需要修复它。感谢所有帮助。
编辑:因此,我们发现 ^C 正在发送 SIGINT,但大多数程序都忽略了它。此问题仅存在于 X 中;真实 tty 上的 ^C 似乎按预期得到遵守。VLC 在 X 中响应 ^C,但我找不到其他可以响应的程序。通过 kill -2 手动发送的 SIGINT 似乎也被忽略了。
关于这个问题的讨论正在进行中http://bugs.archlinux.org/task/17817和http://bbs.archlinux.org/viewtopic.php?id=88645。
答案1
尝试运行stty -a
,你应该得到类似的结果:
速度 38400 波特;行 40;列 80;行 = 0; intr = ^C; 退出 = ^\; 擦除 = ^?; 杀死 = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; ...
您感兴趣的字段是“intr = ^C”(或为您设置的任何“intr”)。它告诉您哪个组合键会向拥有终端的进程生成 SIGINT。要将其重新设置为 ^C,您需要能够在键盘上生成 ^C,并且执行此操作的确切机制因 shell 而异,但一些快速测试表明,对于(至少)bash 和 ksh,您可以通过先按 ^V 来执行此操作(我有一个模糊的记忆,足够旧的“普通 sh”需要 \^C 才能在行中插入文字 ^C)。
答案2
你的 shell 中是否设置了 SIGINT 陷阱?