在终端中终止 Python(control-C 只是打印 ^C)macOS 10.12

Terminate Python in Terminal (control-C just printing ^C) macOS 10.12

所以我一直在使用 control-z 来停止我的 python 脚本,但我最近注意到它们在 activity 监视器中仍然处于活动状态并且只能在那里终止它们。 Control-C 不起作用,只打印出 ^C。也许组合被重新映射了?关于我如何解决这个问题的任何建议。

默认情况下 CTRL+Z 挂起进程并将其置于后台,请参阅 man bash 并搜索 作业控制

在 OS X 标准 bash 上,CTRL+C 向前台进程发送 SIGINT(中断信号),但也打印 ^CSIGINT 可以忽略或由 运行 进程处理。

默认情况下 python 处理 SIGINT 并将其转换为 KeyboardException 如果您的脚本处理像 except Exception: 或类似的一般异常(一个非常糟糕的主意)那么它可以忽略 CTRL+C.

检查您的脚本以进行信号处理和一般异常处理。

要检查终端类型 stty -a 上的重新映射并查找 cchars,您应该会看到 intr = ^C;susp = ^Z;