我有遵循此指南的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],我就越意识到自己是一名新手!因此,正如我所说,我感谢您解决方案中的任何细节/细节。预先感谢!