在 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 替换它
好的。谢谢大家没有帮我。几个小时后我找到了解决方案。
- 我用 --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 在 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 是屏幕名称
我正在尝试设置一个我的世界服务器来和我的朋友一起玩。这是我第一次在 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 替换它好的。谢谢大家没有帮我。几个小时后我找到了解决方案。
- 我用 --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 在 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 是屏幕名称