发送'ESC'或信号到子进程

时间:2013-07-30 11:57:40

标签: python signals subprocess popen sigint

我目前正在设计一个脚本,最终将控制一系列游戏,并能够从主脚本启动和停止它们。

然而,其中一个游戏只能通过按“ESC”键优雅地停止。如何将其解释为信号或类似信号?

*游戏以gamename.Popen()开始,然后通常通过发送SIGINT或SIGQUIT来完成。

想法?

2 个答案:

答案 0 :(得分:1)

  

然而,其中一个游戏只能通过按“ESC”键优雅地停止。如何将其解释为信号或类似信号?

你做不到。您试图覆盖子进程中的设计错误,我怀疑它抓取了自己的输入,并且没有使用stdin来允许您发送 Esc 。如果这个假设不正确,请告诉我。

你有没有尝试过使用SIGTERM这个游戏?这是更传统的“清理自己并退出”信号,我可以想象有人编写代码来优雅地处理SIGTERM,同时将SIGINT和SIGQUIT保留为默认值。

答案 1 :(得分:0)

如果你通过使用PIPE来发送击键来控制它们,那么发送chr(0x1b)就可以了。

相关问题