Настройка службы сервера Minecraft на USB-накопителе - PullRequest
0 голосов
/ 19 октября 2019

Я пытаюсь настроить сервер майнкрафт, чтобы играть с моими друзьями. Это мой первый раз, когда я делаю это на Linux, поэтому у меня есть (я считаю) небольшая проблема. Я не могу понять, как настроить его на моем жестком диске USB.

Вот мой minecraft.service

  GNU nano 2.9.3                                                                 minecraft.service

[Unit]
Description=Minecraft Server
After=network.target

[Service]
WorkingDirectory=/media/main/ALL/.minecraft-server

User=minecraft

Restart=always

ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xms512M -Xmx3584M -jar -DIReallyKnowWhatIAmDoingISwear spigot*.jar nogui

ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 15 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS..."\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

небольшое редактирование - я удалил -% i, потому что это сделатьмногосерверный

и вот статус службы после запуска

● minecraft.service - Minecraft Server
   Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2019-10-19 11:30:25 CEST; 17min ago
  Process: 1462 ExecStart=/usr/bin/screen -DmS mc- /usr/bin/java -Xms512M -Xmx3584M -jar -DIReallyKnowWhatIAmDoingISwear spigot*.jar nogui (code=exited, status=1/FAILURE)
 Main PID: 1462 (code=exited, status=1/FAILURE)

Oct 19 11:30:25 ubuntu systemd[1]: minecraft.service: Service hold-off time over, scheduling restart.
Oct 19 11:30:25 ubuntu systemd[1]: minecraft.service: Scheduled restart job, restart counter is at 5.
Oct 19 11:30:25 ubuntu systemd[1]: Stopped Minecraft Server.
Oct 19 11:30:25 ubuntu systemd[1]: minecraft.service: Start request repeated too quickly.
Oct 19 11:30:25 ubuntu systemd[1]: minecraft.service: Failed with result 'exit-code'.
Oct 19 11:30:25 ubuntu systemd[1]: Failed to start Minecraft Server.

пользователь был создан пользователем useradd minecraft без пароля

Дистрибутив Ubuntu Server 18.04.3 LTS

Мне нужно это на жестком диске USB, потому что у меня маленькая SD-карта. В будущем я хочу заменить его на ssd на adpter

1 Ответ

0 голосов
/ 21 октября 2019

Хорошо. Спасибо всем, что не помогли мне. Через несколько часов я нашел решение (я).

  1. Я заново создал пользователя minecraft с --system
  2. Создал группу minecraft с --system
  3. добавил пользователя вgroup
  4. Установить домашнюю папку пользователя minecraft на ... /. minecraft-server (когда я делал это при создании, она выдавала ошибку)

Это исправило мою проблему с сервером, не запускающимсявообще, но тогда я не могу присоединиться к экрану. Я попытался -c с пользовательской конфигурацией и редактированием / etc / screenrc (второй вариант полностью сломал экран, поэтому мне нужно было переустановить его). Наконец, я создал .screenrc в /.minecraft-server с параметрами multiuser on и добавил пользователей, которые могут присоединиться.

Сейчас это работает, но я потратил около 10 часов подряд, чтобы это исправить ...

Создание пользователя и группы:

adduser --system minecraft
addgroup --system minecraft
usermod -a -G minecraft minecraft
usermod --home /home_folder minecraft

.screenrc в домашнем каталоге minecraft:

multiuser on
addacl root
addacl user1

Окончательная версия minecraft.service в systemd:


[Unit]
Description=Minecraft Server
After=network.target

[Service]
WorkingDirectory=/media/main/ALL/.minecraft-server

User=minecraft
Group=minecraft
Type=forking

Restart=on-failure
#RestartSec=20 5

ExecStart=/usr/bin/screen -dmS mc /usr/bin/java -Xms512M -Xmx3584M -jar -DIReallyKnowWhatIAmDoingISwear spigot-1.14.4.jar nogui

ExecStop=/usr/bin/screen -p 0 -S mc -X eval 'stuff "say SERVER SHUTTING DOWN IN 15 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc -X eval 'stuff "save-all"\015'
ExecStop=/usr/bin/screen -p 0 -S mc -X eval 'stuff "stop"\015'

[Install]
WantedBy=multi-user.target

Чтобы прикрепить к экрану: screen -x minecraft/mc, где minecraft - пользователь, а mc - экранное имя

...