在USB硬盘问题上设置Minecraft服务器服务

时间:2019-10-19 09:52:22

标签: linux ubuntu raspberry-pi minecraft systemd

我正试图建立一个我的世界服务器与我的朋友一起玩。这是我第一次在linux上进行此操作,所以我有一个(我相信)小问题。我不知道如何在USB硬盘上进行设置。

这是我的minecraft.service

# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh
curl: (6) Could not resolve host: packages.gitlab.com; Unknown error

小修改-我删除了-%i,因为它是为了使多服务器相信

这是启动后的服务状态

  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

用户是由“ useradd minecraft”创建的,没有密码

发行版是Ubuntu Server 18.04.3 LTS

我在USB硬盘上需要它,因为我的SD卡较小。将来我想在adpter上将其替换为ssd

1 个答案:

答案 0 :(得分:0)

好的。谢谢大家对我的帮助。几个小时后,我找到了解决方法。

  1. 我使用--system重新创建了我的世界用户
  2. 使用--system创建了分组的minecraft
  3. 将用户添加到组
  4. 将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是屏幕名