有没有办法用Python发送命令到终端应用程序

问题描述 投票:-1回答:1

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

只是为了记录,我可以从正在运行的进程中提取进程ID,如果这有帮助的话。

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

在线我找到了命令

echo pause > /dev/pts/2

但它真正做的就是呼应控制台窗口的停顿。

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

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

python bash shell console
1个回答
0
投票

所以实际上并没有那么难。我没有找到将其直接发送到终端的解决方案,但是在tmux的帮助下,它可以完成。

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

tmux send-keys -t sessionname -l command

tmux send-keys -t sessionname Enter

在Python中集成应用程序是没有问题的。

再看看https://serverfault.com/questions/178457/can-i-send-some-text-to-the-stdin-of-an-active-process-running-in-a-screen-sessi

也可以在屏幕上完成。

© www.soinside.com 2019 - 2024. All rights reserved.