在Python中有没有一种向终端应用程序发送命令的方法

在Python中有没有一种向终端应用程序发送命令的方法,python,bash,shell,console,Python,Bash,Shell,Console,我正在运行linux,你可能已经知道了。 所以我用PHP和Python编写了一个gameserver面板,可以安装、启动和停止我为之编写脚本的任何游戏。在使用mumble进行了一些测试之后,我现在将游戏添加到列表中,我的第一个受支持的游戏将是quakelive我想要实现的是,我可以向终端中运行的任何应用程序发送命令,还可以将输出读取到控制台窗口。。我的下一步将是Minecraft和其他一些游戏。我知道这两款游戏都有一个查询端口,但a)我不知道如何从php向这款游戏发送查询,b)我想潜在地支持所有

我正在运行linux,你可能已经知道了。 所以我用PHP和Python编写了一个gameserver面板,可以安装、启动和停止我为之编写脚本的任何游戏。在使用mumble进行了一些测试之后,我现在将游戏添加到列表中,我的第一个受支持的游戏将是quakelive我想要实现的是,我可以向终端中运行的任何应用程序发送命令,还可以将输出读取到控制台窗口。。我的下一步将是Minecraft和其他一些游戏。我知道这两款游戏都有一个查询端口,但a)我不知道如何从php向这款游戏发送查询,b)我想潜在地支持所有游戏

作为记录,如果有帮助,我可以从正在运行的进程中提取进程id。

所以我运行了ps aux | grep qzero,它说服务器是在pts/2上打开的。所以我测试的命令是pause,当我手动输入它时,它会回显一些东西

我在网上找到了这个命令

echo pause > /dev/pts/2
但它真正做的只是在控制台窗口中回响暂停

我一直在网上搜索,但我想我真的不知道该找什么。也许这与整个stdin和stdout有关。


我知道这在其他语言中是可能的,因为我在PufferPanel中玩过,他们也有这个功能。但是它有一些缺陷,所以我决定编写自己的面板。

所以实际上并不难。我没有找到直接发送到终端的解决方案,但在tmux的帮助下,这是可以做到的

你基本上是开始一个会话,然后

tmux send-keys -t sessionname -l command

tmux send-keys -t sessionname Enter
在Python中集成到应用程序中是没有问题的

进一步看

显然也可以在屏幕上做