
少し前に、Raspberry Pi 4B 8Gb を購入し、SATA 拡張ボードを使用して PLEX Media Server を正常にセットアップしました。自分の知識を広げるために、楽しみのために、また姪と甥が私をかっこいい叔父だと思ってくれるように、プライベート Minecraft サーバーを追加できるかどうか試してみることにしました。
完了した手順
- Raspberry PiOS を Ubuntu Server 21.04 に交換して、Java がバス幅全体 (64 ビット対 32 ビット) を活用できるようにしました。
- インストール済みLiberica の Java 16 JDKMinecraft の準備として。
- LAN が適切に設定されていることを確認するために、LEMP サーバー (Apache を NGINX に置き換えた) をセットアップします。
- 見つけたPineCraftインストーラー、手順を自動化することができました。
- インストーラー スクリプトは正常に完了しましたが、次の注意事項があります。
注意点
- インストーラーはinitファイルを作成します。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
これは、テスト サービス用に名前を変更する前のシェル スクリプトの名前です。新規インストールでは cron はデフォルトでは実行されず、systemctl | grep cron
何も返されません。この問題は簡単にsudo systemctl enable cron && sudo systemctl start cron
修正されました。
これをネイティブのsystemdサービスに変換したいので、まだオープンのままにしておきます。