请帮忙转换

请帮忙转换

不久前,我购买了 Raspberry Pi 4B 8Gb,并使用 SATA 扩展板成功设置了 PLEX 媒体服务器。为了扩展我自己的知识,我决定看看是否可以添加一个私人 Minecraft 服务器来获得乐趣因为我的侄女和侄子会认为我是一个很酷的叔叔。

我已完成的步骤

  1. 将 Raspberry PiOS 替换为 Ubuntu Server 21.04,以便 Java 可以利用整个总线宽度(64 位与 32 位)。
  2. 已安装Liberica 的 Java 16 JDK为《我的世界》做准备。
  3. 设置 LEMP 服务器(用 NGINX 替换 Apache)以确保 LAN 已正确设置。
  4. 找到了松木工艺安装程序,这样我就可以自动化这些步骤。
  5. 安装程序脚本成功完成,但有以下注意事项。

注意事项

  • 安装程序创建初始化文件。 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
  1. 我不知道如何将脚本结果“传递”到屏幕。
  2. 屏幕可能始终为空,因为服务状态显示“活动加载/退出”。我假设server.sh脚本已完成,但没有保持加载/运行状态
  3. 如果我在脚本外部运行带有 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 服务

相关内容