我正在尝试建立一个我的世界服务器来和我的 friend 一起玩。这是我第一次在 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 卡。将来我想用 adpter 上的 SSD 替换它
最佳答案
好的。谢谢大家没有帮助我。几个小时后我找到了解决方案。
- 我使用 --system 重新创建了用户minecraft
- 使用--system创建了组minecraft
- 已将用户添加到群组
- 将minecraft用户的主文件夹设置为.../.minecraft-server(当我在创建时执行此操作时,它抛出了错误)
这解决了我的服务器根本无法启动的问题,但随后我无法附加到屏幕。
我尝试使用 -c 自定义配置并编辑/etc/screenrc (第二个选项完全破坏了屏幕,所以我需要重新安装它)。最后,我在/.minecraft-server 中使用选项 multiuser on
创建了 .screenrc,并添加了可以附加的用户。
现在它可以工作了,但我花了大约 10 个小时来修复它......
创建用户和组:
adduser --system minecraft
addgroup --system minecraft
usermod -a -G minecraft minecraft
usermod --home /home_folder minecraft
.screenrc 在我的世界的主目录中:
multiuser on
addacl root
addacl user1
systemd 中的 minecraft.service 最终版本:
[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 是屏幕名称
关于linux - 在USB硬盘上设置minecraft服务器服务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462434/