如何在Ubuntu 18.04上从PHP反映我的Minecraft服务状态?

时间:2019-03-06 01:05:22

标签: php linux minecraft ubuntu-18.04

我有遵循此指南的Minecraft服务器:https://linuxconfig.org/how-to-setup-minecraft-server-on-ubuntu-18-04-bionic-beaver-linux

最后,它显示了如何设置服务(因此,如果服务器重新启动,它将自动启动),我看到我可以按照以下方式检查状态:

sudo systemctl start minecraft@survival

这将打印如下内容:

minecraft@survival.service - Minecraft Server: survival
Loaded: loaded (/etc/systemd/system/minecraft@.service; indirect; vendor pres
Active: active (running) since Tue 2019-03-05 20:17:17 UTC; 4h 32min ago
Main PID: 1031 (screen)
Tasks: 27 (limit: 4537)
CGroup: /system.slice/system-minecraft.slice/minecraft@survival.service
       ├─1031 /usr/bin/SCREEN -DmS mc-survival java -Xmx2G -jar server.jar n
       └─1051 java -Xmx2G -jar server.jar nogui

我的问题:如何从PHP文件(用于在网页上打印)打印此Minecraft服务状态(有效/无效)。我有几个想法-如下-但我希望有人可以详细分享解决方案:

想法1.)在PHP中使用shell_exec()来执行与我上面包含的命令相同的命令,并将输出存储在我可以清除的变量中(即使用regex查找“活动”字词)。出于安全原因,这种方法似乎是个坏主意-但我不确定-但肯定会暴露一些服务器性能问题。

想法2.)创建一个cron作业,该作业首先将上述输出打印到静态文件中(例如,每5分钟打印一次),然后使用php从txt文件中读取。这解决了上述性能问题,我应该能够从缓存文件中读取OK-我只是不确定这是否是一个好的解决方案,以及如何将冗长的信息(来自sudo systemctl start minecraft@survival)输出到文件。

我越是使用Linux [当前是Ubuntu 18.04],我就越意识到自己是一名新手!因此,正如我所说,我感谢您解决方案中的任何细节/细节。预先感谢!

0 个答案:

没有答案