Хорошо. Спасибо всем, что не помогли мне. Через несколько часов я нашел решение (я).
- Я заново создал пользователя minecraft с --system
- Создал группу minecraft с --system
- добавил пользователя вgroup
- Установить домашнюю папку пользователя 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 - экранное имя