在终端中终止 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
(中断信号),但也打印 ^C
。 SIGINT
可以忽略或由 运行 进程处理。
默认情况下 python 处理 SIGINT
并将其转换为 KeyboardException
如果您的脚本处理像 except Exception:
或类似的一般异常(一个非常糟糕的主意)那么它可以忽略 CTRL+C
.
检查您的脚本以进行信号处理和一般异常处理。
要检查终端类型 stty -a
上的重新映射并查找 cchars
,您应该会看到 intr = ^C;
和 susp = ^Z;
。
所以我一直在使用 control-z 来停止我的 python 脚本,但我最近注意到它们在 activity 监视器中仍然处于活动状态并且只能在那里终止它们。 Control-C 不起作用,只打印出 ^C。也许组合被重新映射了?关于我如何解决这个问题的任何建议。
默认情况下 CTRL+Z
挂起进程并将其置于后台,请参阅 man bash
并搜索 作业控制 。
在 OS X 标准 bash 上,CTRL+C
向前台进程发送 SIGINT
(中断信号),但也打印 ^C
。 SIGINT
可以忽略或由 运行 进程处理。
默认情况下 python 处理 SIGINT
并将其转换为 KeyboardException
如果您的脚本处理像 except Exception:
或类似的一般异常(一个非常糟糕的主意)那么它可以忽略 CTRL+C
.
检查您的脚本以进行信号处理和一般异常处理。
要检查终端类型 stty -a
上的重新映射并查找 cchars
,您应该会看到 intr = ^C;
和 susp = ^Z;
。