我目前正在设计一个脚本,最终将控制一系列游戏,并能够从主脚本启动和停止它们。
然而,其中一个游戏只能通过按“ESC”键优雅地停止。如何将其解释为信号或类似信号?
*游戏以gamename.Popen()开始,然后通常通过发送SIGINT或SIGQUIT来完成。
想法?
答案 0 :(得分:1)
然而,其中一个游戏只能通过按“ESC”键优雅地停止。如何将其解释为信号或类似信号?
你做不到。您试图覆盖子进程中的设计错误,我怀疑它抓取了自己的输入,并且没有使用stdin来允许您发送 Esc 。如果这个假设不正确,请告诉我。
你有没有尝试过使用SIGTERM这个游戏?这是更传统的“清理自己并退出”信号,我可以想象有人编写代码来优雅地处理SIGTERM,同时将SIGINT和SIGQUIT保留为默认值。
答案 1 :(得分:0)
如果你通过使用PIPE来发送击键来控制它们,那么发送chr(0x1b)
就可以了。