我已遵循许多教程,但出于某种原因,我的 minecraft 服务器的服务无法读取 server.properties 文件。我对 Ubuntu 有基本的了解(必须学习如何将其用于个人项目和大学)。
但是,当我使用以下命令通过命令行正常启动它时,java -Xms4G -Xmx12G -jar serverstarter-2.0.1.jar nogui
它确实会读取服务器属性文件。我已经检查了系统上是否存在任何其他 server.properties 文件,据我所知,系统上只有一个。
这是与屏幕有关的问题吗,还是我做错了什么?
我的[电子邮件保护]文件如下所示:
[Unit]
Description=Minecraft Server: %i
After=network.target
[Service]
WorkingDirectory=/opt/minecraft-servers/%i
User=minecraft
Group=minecraft
ProtectSystem=full
ProtectHome=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
Restart=always
ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xms4G -Xmx12G -jar serverstarter-2.0.1.jar nogui
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS. SAVING ALL MAPS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"\015'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"\015'
[Install]
WantedBy=multi-user.target
如果需要其他数据,我很乐意提供。提前致谢。
答案1
您是否使用与服务定义中相同的用户/组手动启动 minecraft?
如果是的话,我猜它正在错误的目录中寻找 server.properties。
在您的 ExecStart 中,尝试添加一个执行屏幕设置的脚本,但首先将目录更改为 server.properties 所在的正确目录。
我有几个 minecraft 服务器,我从 crontab @reboot 启动。
/usr/bin/screen -dmS vanillamc /home/xxxx/minecraft/minecraft-1.17.sh
我的脚本(您可以调整并发送您的动态工作目录作为输入)
#!/bin/bash
cd /home/xxxx/minecraft/
MEM="-Xms1G -Xmx2G"
JAVA=/usr/lib/jvm/java-16-oracle/bin/java
$JAVA $MEM -jar minecraft_server-1.17.jar nogui