不久前,我购买了 Raspberry Pi 4B 8Gb,并使用 SATA 扩展板成功设置了 PLEX 媒体服务器。为了扩展我自己的知识,我决定看看是否可以添加一个私人 Minecraft 服务器来获得乐趣因为我的侄女和侄子会认为我是一个很酷的叔叔。
我已完成的步骤
- 将 Raspberry PiOS 替换为 Ubuntu Server 21.04,以便 Java 可以利用整个总线宽度(64 位与 32 位)。
- 已安装Liberica 的 Java 16 JDK为《我的世界》做准备。
- 设置 LEMP 服务器(用 NGINX 替换 Apache)以确保 LAN 已正确设置。
- 找到了松木工艺安装程序,这样我就可以自动化这些步骤。
- 安装程序脚本成功完成,但有以下注意事项。
注意事项
- 安装程序创建初始化文件。 Ubuntu 使用 systemd
- 服务器的运行方式
$user
需要$password
, 或使用sudo
, 我不想每次都这样做
我需要帮助
我已经把.service
文件从使用 Systemd 设置 Minecraft 服务器,并将其变成这样:
[Unit]
Description=Minecraft Server Pinecraft SysV init script conversion attempt
Documentation=https://github.com/Cat5TV/pinecraft
Wants=network.target
After=network.target
[Service]
User=minecraft
Group=minecraft
Nice=5
KillMode=none
SuccessExitStatus=0 1
#ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
PrivateTmp=true
InaccessiblePaths=/root /sys /srv -/opt /media -/lost+found
ReadWritePaths=/home/minecraft
WorkingDirectory=/home/minecraft
ExecStartPre=/usr/bin/screen -dmS PineCraft
ExecStart=/bin/bash /home/minecraft/server.sh
ExecStop=/bin/bash /home/minecraft/stop.sh
Restart=/bin/bash /home/minecraft/reboot.sh
[Install]
WantedBy=multi-user.target
- 我不知道如何将脚本结果“传递”到屏幕。
- 屏幕可能始终为空,因为服务状态显示“活动加载/退出”。我假设
server.sh
脚本已完成,但没有保持加载/运行状态 - 如果我在脚本外部运行带有 aiker 参数的 java 行,服务器启动时不会出现错误
请参阅Create the Scripts
部分,大约 3/4 的位置安装脚本。我只.service
从包/包管理器安装了一个文件。我从来没有必要写过一篇。
更新
部分解决:此设置使用以下 cron 作业:
crontab -u ubuntu -l
@reboot /usr/bin/screen -dmS Pinecraft /home/ubuntu/minecraft/server > /dev/null 2>&1
server
是我为测试服务重命名之前 shell 脚本的名称。显然,在全新安装时,默认情况下 cron 不会运行,也不systemctl | grep cron
返回任何内容。一个简单的sudo systemctl enable cron && sudo systemctl start cron
问题就解决了。
我仍然保持开放状态,因为我想将其转换为本机 systemd 服务