Сервер Minecraft не загружает server.properties, когда он загружается как служба

Я следовал многим руководствам, но по какой-то причине служба для моего сервера minecraft не читает файл server.properties. У меня есть базовое понимание Ubuntu (пришлось научиться использовать его для личных проектов и колледжа).

Однако, когда я запускаю его нормально через командную строку со следующей командой java -Xms4G -Xmx12G -jar serverstarter-2.0.1.jar nogui, он действительно читает файл свойств сервера. Я уже проверил, существуют ли другие файлы server.properties в системе, и, насколько я знаю, в системе есть только один.

Связана ли эта проблема с экраном, или есть что-то еще, что я делаю неправильно?

Мой файл minecraft@.service выглядит так:

[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

Если нужны какие-то другие данные, я буду рад их предоставить. Заранее спасибо.

0
задан 2 September 2021 в 15:02

1 ответ

Вы вручную запускаете minecraft с тем же пользователем / группой, что и в определении службы?

Если да, то я бы предположил, что он ищет server.properties в неправильном каталоге.

В ExecStart попробуйте добавить скрипт, который выполняет настройку экрана, но сначала меняет dir на правильный каталог, в котором находится server.properties.

У меня есть несколько серверов minecraft, которые я запускаю из crontab @reboot.

/usr/bin/screen -dmS vanillamc /home/xxx/minecraft/minecraft-1.17.sh

Мой скрипт (вы можете адаптировать и отправить свой динамический рабочий dir в качестве входных данных)

#!/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
0
ответ дан 4 September 2021 в 09:23

Другие вопросы по тегам:

Похожие вопросы: