Пожалуйста, помогите с конвертацией

Пожалуйста, помогите с конвертацией

Не так давно я купил Raspberry Pi 4B 8Gb и успешно настроил PLEX Media Server, используя плату расширения SATA. В попытке расширить свои знания я решил посмотреть, смогу ли я добавить частный сервер Minecraft ради развлечения, а также потому, что мои племянники будут считать меня крутым дядей.

Шаги, которые я выполнил

  1. Заменил Raspberry PiOS на Ubuntu Server 21.04, чтобы Java могла использовать всю ширину шины (64 бита вместо 32 бит).
  2. УстановленJava 16 JDK от Libericaв рамках подготовки к Minecraft.
  3. Настройте сервер LEMP (замените Apache на NGINX), чтобы убедиться, что локальная сеть настроена правильно.
  4. НашелУстановщик PineCraft, чтобы я мог автоматизировать шаги.
  5. Скрипт установщика успешно завершен, со следующими оговорками.

Предостережения

  • Установщик создает файлы init. Ubuntu использует systemd
  • Сервер запускается как , $userчто требует $password, или использование sudo, что я не хочу делать каждый раз

Мне нужна помощь здесь

Я взял .serviceфайл изНастройка сервера Minecraft с помощью Systemd, и превратил его в это:

[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. Если я запускаю строку java с аргументами aiker вне скрипта, сервер запускается без ошибок

Смотрите 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это имя скрипта оболочки до того, как я переименовал его для своей тестовой службы. Очевидно, на новой установке cron не запускается по умолчанию и systemctl | grep cronничего не вернул. Простое sudo systemctl enable cron && sudo systemctl start cronрешение проблемы.

Я все еще оставляю это открытым, так как я хотел бы преобразовать это в собственную службу systemd.

Связанный контент