如何使用python将控件C发送到Mac终端?

时间:2012-07-19 22:29:37

标签: python macos terminal interrupt

我有一个需要将控制C发送到mac终端的python脚本。我已经尝试发送纯文本“^ C”但我回来说终端无法识别命令。 (终端意味着python创建的伪终端)

基本上,我使用终端运行一个旧的Unix可执行文件,我能想到的唯一方法就是发送中断信号。有什么方法可以欺骗终端以为我按下了控制C?

提前致谢!

2 个答案:

答案 0 :(得分:3)

如果可以使用os.kill获取PID,则可以将SIGINT信号显式发送到进程。

os.kill(pid, signal.SIGINT)

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

答案 1 :(得分:0)

如果您使用subprocess的{​​{1}}打开流程,您应该能够发送如下控制信号:

Popen

您需要proc.send_signal(signal.SIGINT) 才能获得import signal