linux - 在USB硬盘上设置minecraft服务器服务问题

标签 linux ubuntu raspberry-pi minecraft systemd

我正在尝试建立一个我的世界服务器来和我的 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 替换它

最佳答案

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

  1. 我使用 --system 重新创建了用户minecraft
  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 是屏幕名称

关于linux - 在USB硬盘上设置minecraft服务器服务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462434/

相关文章:

ubuntu - Vim新手: Mapping kj key to <Esc> not working in gnome terminal

python - 无法使用 camera.resolution of picamera 设置分辨率

php - Bash 和 PHP - 在一定时间后调用函数/命令

c++ - 与 Thrift Hook

php - 为什么我的临时文件不可写入/tmp 文件夹 - linux 服务器(centos)

c++ - 如何向 rijndael.h 添加 PKCS7 填充?

ruby-on-rails - SSH 和-bash : fork: Cannot allocate memory VPS Ubuntu

json - ubuntu中安装错误phonegap

linux - 使用 bash exec 命令调用 R

python - 对于运行 Web 应用程序的 Raspberry Pi,我应该使用哪个 Python 版本?