2

我有一个 python 脚本需要将控制 C 发送到 mac 终端。我尝试发送纯文本“^C”,但我发现终端无法识别该命令。(终端表示python创建的伪终端)

基本上,我正在使用终端运行旧的 Unix 可执行文件,而我能想到的优雅终止它的唯一方法是发送中断信号。有什么办法可以让终端误以为我按下了控制 C?

提前致谢!

4

2 回答 2

3

如果您可以使用os.kill.

os.kill(pid, signal.SIGINT)

这将要求您对脚本进行检测以获取进程 PID,但这是模拟“ctrl-c”行为的最佳方式。

于 2012-07-19T22:33:27.993 回答
0

如果您使用subprocess's打开进程Popen,您应该能够发送如下控制信号:

proc.send_signal(signal.SIGINT)

你需要import signal得到SIGINT.

于 2012-07-19T22:42:42.750 回答