在 usb 硬盘问题上设置 minecraft 服务器服务

Setting up minecraft server service on usb hard drive problem

我正在尝试设置一个我的世界服务器来和我的朋友一起玩。这是我第一次在 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..."5'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS..."5'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS..."5'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"5'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"5'

[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

我的sd卡比较小,需要放在usb硬盘上。将来我想在 adpter

上用 ssd 替换它

好的。谢谢大家没有帮我。几个小时后我找到了解决方案。

  1. 我用 --system
  2. 重新创建了用户 minecraft
  3. 使用 --system
  4. 创建组 minecraft
  5. 已将用户添加到群组
  6. 将 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 在 minecraft 主目录中:

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

[Install]
WantedBy=multi-user.target

附加到屏幕:screen -x minecraft/mc 其中 minecraft 是用户,mc 是屏幕名称