私はLinuxプロでもJavaプロでもありませんが、Ubuntu 16.04でMinecraftサーバーをセットアップしています。システムには8GBのRAMがあります。
サーバーをセットアップするためのすべての指示に従いました(非常に簡単です)が、コマンドを実行したとき:
Sudo Java –Xms1024M -Xmx1024M -jar minecraft_server.1.9.2.jar nogui
私はこれを得た:
Error: Could not find or load main class –Xms1024M
その後、さまざまなJREをインストールしようとして約1時間ハックした後、単に実行しました:Sudo Java -jar minecraft_server.1.9.2.jar nogui
とそれは機能しました。
RAMを指定しない場合の違いと考えられる問題は何ですか?
さらに、MinecraftサーバーをSSH経由で起動し、切断後にバックグラウンドで実行させるための良い方法は何ですか?
編集:
Java -jar minecraft_server.1.9.2.jar nogui
を実行すると、次の出力が表示されます。
2016-05-08 14:30:35,683 ERROR Cannot access RandomAccessFile {}) Java.io.FileNotFoundException: logs/latest.log (Permission denied)
2016-05-08 14:30:35,684 ERROR Unable to invoke method createAppender in class org.Apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for element RollingRandomAccessFile Java.lang.reflect.InvocationTargetException
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
これらの無限のリストが続きます:
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
RAMを指定しないことによる問題は、Minecraftサーバーに十分なRAMが予約されておらず、クラッシュすることです。以下のように、RAMコマンドを最後に配置してみましたか?
Java -jar minecraft_server.jar -Xmx8192M
RAMを制限に合わせて調整してください。さらに、引数に-Xms
を指定する必要がないことに注意してください。また、Sudo
を使用しないでください。システムが侵害される可能性があります。
Minecraftはさまざまな方法でバックグラウンドで実行できます。以下に例を挙げます。
screen
screen
と呼ばれる気の利いたユーティリティを使用して、バックグラウンドでMinecraftセッションを実行できます。これを行うには、screen
コマンドを実行してから、開始コマンドを実行します。その後、押すだけ Ctrl + A に続く D。ターミナルに戻ります。 screen
セッションを再開するには、screen -r
を実行するだけです。
いつでも戻ってコンソールにアクセスできるため、ほとんどの人はscreen
を好みます。
bg
/fg
Minecraftサーバーが起動したら、を押します Ctrl+Z キーボードで。そこから、bg
と入力します。 Minecraftサーバーはバックグラウンドで実行されます。
個人的にはテストしていないので、YMMVに注意してください。
Nohup
Nohup
コマンドを使用して、開始コマンドの前に追加します。 Minecraftサーバーが起動したら、SSHセッションを終了します。サーバーは稼働し続けます。
ただし、Nohup
の使用には注意してください。これは、独自のログを保持するハードドライブのスペースを大量に消費するためです。これを回避するには、コマンドの最後に>/dev/null 2>&1
を追加します。
Initscriptはvery複雑ですが、起動時または手動呼び出し時にサーバーを自動起動/停止できます。手順はオンラインで入手できます。多くの優れた方法がありますが、システムに合わせて調整する必要があります。
権限の問題は、Minecraftがすべてのファイルをルートとして作成したためです。したがって、rootのみがそれらにアクセスできます。これを修正するには、MinecraftフォルダーでSudo chown -R $USER:$USER .
を実行します。
出典:Minecraftネットワークのシステム管理者
ケースに注意してください!
m
は、次のように小文字にする必要があります。
Sudo Java -Xms1024m -Xmx1024m -jar minecraft_server.1.9.2.jar nogui
また、メモリオプションを最後に配置してみてください。