Я следовал многим руководствам, но по какой-то причине служба для моего сервера 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
Если нужны какие-то другие данные, я буду рад их предоставить. Заранее спасибо.
Вы вручную запускаете 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