我有一个需要将控制C发送到mac终端的python脚本。我已经尝试发送纯文本“^ C”但我回来说终端无法识别命令。 (终端意味着python创建的伪终端)
基本上,我使用终端运行一个旧的Unix可执行文件,我能想到的唯一方法就是发送中断信号。有什么方法可以欺骗终端以为我按下了控制C?
提前致谢!
答案 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
。