変換にご協力ください

変換にご協力ください

少し前に、Raspberry Pi 4B 8Gb を購入し、SATA 拡張ボードを使用して PLEX Media Server を正常にセットアップしました。自分の知識を広げるために、楽しみのために、また姪と甥が私をかっこいい叔父だと思ってくれるように、プライベート Minecraft サーバーを追加できるかどうか試してみることにしました。

完了した手順

  1. Raspberry PiOS を Ubuntu Server 21.04 に交換して、Java がバス幅全体 (64 ビット対 32 ビット) を活用できるようにしました。
  2. インストール済みLiberica の Java 16 JDKMinecraft の準備として。
  3. LAN が適切に設定されていることを確認するために、LEMP サーバー (Apache を NGINX に置き換えた) をセットアップします。
  4. 見つけたPineCraftインストーラー、手順を自動化することができました。
  5. インストーラー スクリプトは正常に完了しましたが、次の注意事項があります。

注意点

  • インストーラーはinitファイルを作成します。Ubuntuはsystemdを使用します
  • サーバーは として実行され、 または の使用を$user必要としますが、これを毎回実行するのは望ましくありません。$passwordsudo

ここで助けが必要です

私は.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これは、テスト サービス用に名前を変更する前のシェル スクリプトの名前です。新規インストールでは cron はデフォルトでは実行されず、systemctl | grep cron何も返されません。この問題は簡単にsudo systemctl enable cron && sudo systemctl start cron修正されました。

これをネイティブのsystemdサービスに変換したいので、まだオープンのままにしておきます。

関連情報