如何从 minecraft 服务器屏幕会话中获取命令结果?

如何从 minecraft 服务器屏幕会话中获取命令结果?

我在屏幕会话中运行 minecraft 服务器。我想向该屏幕会话发送命令并返回命令结果(并将其打印回来)。我可以不使用该screen -L选项来做到这一点吗?

Bash 脚本内部的演示(显然是错误的!):

result=$(screen -S "minecraft-server" -p 0 -X stuff "list"`echo -ne '\015'`)
printf "$result\n"

答案1

一种方法是使用日志。屏幕上打印的所有内容也会打印到日志中:

我的 minecraft 服务器位于 /home/minecraft,以“minecraft”用户身份运行(不是我)。

  1. 发信息:

    screen -p 0 -S minecraft-server -X eval 'stuff "say TEST MESSAGE..."\\015'

  2. 以多种方式读取输出:

    • tail /home/minecraft/logs/latest.log

    • less /home/minecraft/logs/latest.log加上 CTRL+G 前进到末尾

    • less /home/minecraft/logs/latest.log加上 CTRL+F 来持续监控新的输出。

相关内容