unRAIDサーバーでMinecraftサーバーを実行しようとしています。
サーバーはシェルで実行され、そこに座って入力を待ちます。停止するには、「stop」と入力してEnterキーを押す必要があります。そうすると、世界が保存されて正常に終了し、シェルに戻ります。NASボックスにtelnetを介して実行する場合はすべて動作しますが、ボックスで直接実行する必要があります。
これは私が以前に最初の試みとして持っていたものです:
#define USER_SCRIPT_LABEL Start Minecraft server
#define USER_SCRIPT_DESCR Start minecraft server. needs sde2 mounted first
cd /mnt/disk/sde2/MCunraid
screen -d -m -S minecraft /usr/lib/java/bin/java -Xincgc -Xmx1024M -jar CraftBukkit.jar
MCunraidは、Craftbukkit.jarおよびすべてのワールドファイルなどを含むフォルダーです。その画面行を直接入力すると、画面がセットアップ解除され、サーバーが起動します。スクリプト内からその行を実行すると、画面が設定されないようです
サーバーを停止するには、STOPと入力してEnterキーを押す必要があります。私のアプローチは
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
テキストストップとキャリッジリターンを画面「minecraft」に送信します。しかし、コマンドラインに直接入力しても、機能しません。しかし、「screen -r」を実行すると、サーバーが稼働している状態で画面に移動できます。「stop」と入力すると、適切にシャットダウンします。
サーバーは、telnetで接続して手動で実行した場合は正常に動作します。リモートコンピューターから接続せずに実行するだけです。
#!/bin/bash
とset -x
、スクリプトの先頭に、そして私たちのスクリプトからのトレース出力を示しています。その出力がどこにあるかを知るために、unMENUドキュメントを見る必要があるかもしれません。
screen
起動に失敗したことをどのように確認しますか?set -x
スクリプトの先頭(#!
行の直後)に追加してみて、スクリプトの実行時にトレース出力を報告してください。