Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 python 脚本需要将控制 C 发送到 mac 终端。我尝试发送纯文本“^C”,但我发现终端无法识别该命令。(终端表示python创建的伪终端)
基本上,我正在使用终端运行旧的 Unix 可执行文件,而我能想到的优雅终止它的唯一方法是发送中断信号。有什么办法可以让终端误以为我按下了控制 C?
提前致谢!
如果您可以使用os.kill.
os.kill
os.kill(pid, signal.SIGINT)
这将要求您对脚本进行检测以获取进程 PID,但这是模拟“ctrl-c”行为的最佳方式。
如果您使用subprocess's打开进程Popen,您应该能够发送如下控制信号:
subprocess
Popen
proc.send_signal(signal.SIGINT)
你需要import signal得到SIGINT.
import signal
SIGINT